Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********************************
- * libraries here
- **********************************/
- #include <iostream>
- //#include <conio.h>
- using namespace std;
- /*********************************
- * class definition
- **********************************/
- class Node
- {
- private:
- // data items
- int* numb; // numb
- Node* next; // Node pointer forward
- Node* prev; // Node pointer back
- public:
- /*************************************
- * public data items and functions
- *************************************/
- // constructor
- Node(int);
- // destructor
- ~Node();
- // member functions prototypes
- void setNext(Node* Node) {next = Node;}
- void setPrev(Node* Node) {prev = Node;}
- int setnumb(int x) {*numb = x;}
- Node* getNext() {return next;}
- Node* getPrev() {return prev;}
- int getnumb() {return *numb;}
- void display(Node* current);
- };
- /*********************
- * member functions
- *********************/
- Node :: Node (int num)
- {
- numb = new int();
- setnumb(num);
- setNext(NULL);
- setPrev(NULL);
- }
- Node :: ~Node()
- {
- delete numb;
- }
- /**********************************
- * list current node
- * previous node
- * next node
- * numb held by the node
- **********************************/
- void Node :: display(Node* current)
- {
- cout << "n";
- cout << "number " << getnumb() << "n";
- cout << "prev Node " << getPrev() << "n";
- cout << "next Node " << getNext() << "n";
- cout << "current Node " << current << "n";
- cout << "n";
- }
- /*********************
- * PROTOTYPES
- *********************/
- Node* LoadLinkedList();
- void traverseList(Node** start);
- void deleteNode(Node** start, int numDel);
- void testInsertNode(Node** start, int numAdd);
- void testDeleteNode(Node** start);
- /*********************
- * main
- *********************/
- int main()
- {
- // address of the beginning of the linked list
- Node* start;
- // pointer to the address of the beginning of the LinkedList
- Node** ptrStart;
- // load the linked list
- // save beginning of the linked list in start
- start = LoadLinkedList();
- ptrStart = &start;
- // print out the linkrd list
- // starting at 'start' (the beginning)
- traverseList(ptrStart);
- // run the test code for the testInsertNode function
- // testInsertNode(ptrStart);
- // run the test code for the testDeleteNode function
- testDeleteNode(ptrStart);
- cout << "n";
- //system("pause");
- return 0;
- }
- /*****************************
- * print out the linked list
- *****************************/
- void traverseList(Node** start)
- {
- Node* current;
- current = *start;
- cout << "nn*** Linked List ***n";
- }
- /***************************************
- * delete a Node from the linked list
- ***************************************/
- void deleteNode(Node** start, int numDelete)
- {
- Node* current;
- current = *start;
- }
- /**************************************
- * insert a Node into the linked list
- **************************************/
- void insertNode(Node** start, int numInsert)
- {
- Node* current;
- current = *start;
- }
- /********************************************
- * testing code for the deleteNode function
- ********************************************/
- void testDeleteNode(Node** start)
- {
- cout << "in delete noden";
- deleteNode(start, 23);
- }
- /********************************************
- * testing code for the insertNode function
- ********************************************/
- void testInsertNode(Node* start)
- {
- }
- Node* LoadLinkedList()
- {
- // we are basically just dealing with addresses of objects
- // we will store the address of the current object
- // and the address of the previous and next objects
- /*****************/
- // create linked list (using new for each Node)
- Node* start;
- Node* savePtr;
- Node* temp;
- start = new Node(5); // create the 1st (start) Node
- savePtr = start; // save address of CURRENT Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(10); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr); // set setPrevious of CURRENT Node using saved pointer
- savePtr = temp; // save address of the new Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(15); // create the next NEW Node
- savePtr->setNext(temp); // add Node to the end of the linked list
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(20); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- temp = new Node(25); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- temp = new Node(30); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- return start; // return the beginning of the linked kist
- }
- /*********************************
- * libraries here
- **********************************/
- #include <iostream>
- //#include <conio.h>
- using namespace std;
- /*********************************
- * class definition
- **********************************/
- class Node
- {
- private:
- // data items
- int* numb; // numb
- Node* next; // Node pointer forward
- Node* prev; // Node pointer back
- public:
- /*************************************
- * public data items and functions
- *************************************/
- // constructor
- Node(int);
- // destructor
- ~Node();
- // member functions prototypes
- void setNext(Node* Node) { next = Node; }
- void setPrev(Node* Node) { prev = Node; }
- void setnumb(int x) { *numb = x; }
- Node* getNext() { return next; }
- Node* getPrev() { return prev; }
- int getnumb() { return *numb; }
- void display(Node* current);
- };
- /*********************
- * member functions
- *********************/
- Node::Node(int num)
- {
- numb = new int();
- setnumb(num);
- setNext(NULL);
- setPrev(NULL);
- }
- Node :: ~Node()
- {
- delete numb;
- }
- /**********************************
- * list current node
- * previous node
- * next node
- * numb held by the node
- **********************************/
- void Node::display(Node* current)
- {
- cout << "n";
- cout << "number " << getnumb() << "n";
- cout << "prev Node " << getPrev() << "n";
- cout << "next Node " << getNext() << "n";
- cout << "current Node " << current << "n";
- cout << "n";
- }
- /*********************
- * PROTOTYPES
- *********************/
- Node* LoadLinkedList();
- void traverseList(Node** start);
- void deleteNode(Node** start, int numDel);
- void testInsertNode(Node** start, int numAdd);
- void testDeleteNode(Node** start);
- /*********************
- * main
- *********************/
- int main()
- {
- // address of the beginning of the linked list
- Node* start;
- // pointer to the address of the beginning of the LinkedList
- Node** ptrStart;
- // load the linked list
- // save beginning of the linked list in start
- start = LoadLinkedList();
- ptrStart = &start;
- // print out the linkrd list
- Node display(Node* current);
- // starting at 'start' (the beginning)
- traverseList(ptrStart);
- // run the test code for the testInsertNode function
- //testInsertNode(ptrStart);
- // run the test code for the testDeleteNode function
- testDeleteNode(ptrStart);
- testDeleteNode(ptrStart);
- cout << "n";
- //system("pause");
- return 0;
- }
- /*****************************
- * print out the linked list
- *****************************/
- void traverseList(Node** start)
- {
- Node* current;
- current = *start;
- cout << "nn*** Linked List ***n";
- }
- /***************************************
- * delete a Node from the linked list
- ***************************************/
- void deleteNode(Node** start, int numDelete)
- {
- Node* current;
- current = *start;
- delete current;
- }
- /**************************************
- * insert a Node into the linked list
- **************************************/
- void insertNode(Node** start, int numInsert)
- {
- Node* current;
- current = *start;
- }
- /********************************************
- * testing code for the deleteNode function
- ********************************************/
- void testDeleteNode(Node** start)
- {
- int testnode;
- testnode = 25;
- cout << "in delete noden";
- if (start == NULL)
- {
- cout << "This node does not exist!nn";
- }
- else
- {
- deleteNode(start, testnode);
- cout << "Node deletednn";
- }
- }
- /********************************************
- * testing code for the insertNode function
- ********************************************/
- void testInsertNode(Node* start)
- {
- }
- Node* LoadLinkedList()
- {
- // we are basically just dealing with addresses of objects
- // we will store the address of the current object
- // and the address of the previous and next objects
- /*****************/
- // create linked list (using new for each Node)
- Node* start;
- Node* savePtr;
- Node* temp;
- start = new Node(5); // create the 1st (start) Node
- savePtr = start; // save address of CURRENT Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(10); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr); // set setPrevious of CURRENT Node using saved pointer
- savePtr = temp; // save address of the new Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(15); // create the next NEW Node
- savePtr->setNext(temp); // add Node to the end of the linked list
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- //savePtr->display(savePtr);
- temp = new Node(20); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- temp = new Node(25); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- savePtr = temp; // save address of the new Node in savePtr
- temp = new Node(30); // create the next NEW Node
- savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
- temp->setPrev(savePtr);
- return start; // return the beginning of the linked kist
- }
Add Comment
Please, Sign In to add comment