Guest User

Untitled

a guest
Mar 20th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.34 KB | None | 0 0
  1. /*********************************
  2. * libraries here
  3. **********************************/
  4. #include <iostream>
  5. //#include <conio.h>
  6. using namespace std;
  7.  
  8. /*********************************
  9. * class definition
  10. **********************************/
  11. class Node
  12. {
  13. private:
  14. // data items
  15. int* numb; // numb
  16. Node* next; // Node pointer forward
  17. Node* prev; // Node pointer back
  18.  
  19. public:
  20. /*************************************
  21. * public data items and functions
  22. *************************************/
  23. // constructor
  24. Node(int);
  25.  
  26. // destructor
  27. ~Node();
  28.  
  29. // member functions prototypes
  30. void setNext(Node* Node) {next = Node;}
  31. void setPrev(Node* Node) {prev = Node;}
  32. int setnumb(int x) {*numb = x;}
  33.  
  34. Node* getNext() {return next;}
  35. Node* getPrev() {return prev;}
  36. int getnumb() {return *numb;}
  37.  
  38. void display(Node* current);
  39. };
  40.  
  41. /*********************
  42. * member functions
  43. *********************/
  44. Node :: Node (int num)
  45. {
  46. numb = new int();
  47. setnumb(num);
  48. setNext(NULL);
  49. setPrev(NULL);
  50. }
  51.  
  52. Node :: ~Node()
  53. {
  54. delete numb;
  55. }
  56.  
  57. /**********************************
  58. * list current node
  59. * previous node
  60. * next node
  61. * numb held by the node
  62. **********************************/
  63. void Node :: display(Node* current)
  64. {
  65. cout << "n";
  66. cout << "number " << getnumb() << "n";
  67. cout << "prev Node " << getPrev() << "n";
  68. cout << "next Node " << getNext() << "n";
  69. cout << "current Node " << current << "n";
  70. cout << "n";
  71. }
  72.  
  73.  
  74. /*********************
  75. * PROTOTYPES
  76. *********************/
  77. Node* LoadLinkedList();
  78. void traverseList(Node** start);
  79. void deleteNode(Node** start, int numDel);
  80. void testInsertNode(Node** start, int numAdd);
  81. void testDeleteNode(Node** start);
  82. /*********************
  83. * main
  84. *********************/
  85. int main()
  86. {
  87. // address of the beginning of the linked list
  88. Node* start;
  89. // pointer to the address of the beginning of the LinkedList
  90. Node** ptrStart;
  91.  
  92. // load the linked list
  93. // save beginning of the linked list in start
  94. start = LoadLinkedList();
  95. ptrStart = &start;
  96.  
  97.  
  98. // print out the linkrd list
  99. // starting at 'start' (the beginning)
  100. traverseList(ptrStart);
  101.  
  102. // run the test code for the testInsertNode function
  103. // testInsertNode(ptrStart);
  104.  
  105. // run the test code for the testDeleteNode function
  106. testDeleteNode(ptrStart);
  107.  
  108. cout << "n";
  109. //system("pause");
  110. return 0;
  111. }
  112.  
  113. /*****************************
  114. * print out the linked list
  115. *****************************/
  116. void traverseList(Node** start)
  117. {
  118. Node* current;
  119. current = *start;
  120. cout << "nn*** Linked List ***n";
  121.  
  122.  
  123. }
  124.  
  125. /***************************************
  126. * delete a Node from the linked list
  127. ***************************************/
  128. void deleteNode(Node** start, int numDelete)
  129. {
  130. Node* current;
  131. current = *start;
  132.  
  133.  
  134. }
  135.  
  136. /**************************************
  137. * insert a Node into the linked list
  138. **************************************/
  139. void insertNode(Node** start, int numInsert)
  140. {
  141. Node* current;
  142. current = *start;
  143.  
  144.  
  145. }
  146.  
  147. /********************************************
  148. * testing code for the deleteNode function
  149. ********************************************/
  150. void testDeleteNode(Node** start)
  151. {
  152. cout << "in delete noden";
  153. deleteNode(start, 23);
  154. }
  155.  
  156. /********************************************
  157. * testing code for the insertNode function
  158. ********************************************/
  159. void testInsertNode(Node* start)
  160. {
  161.  
  162. }
  163.  
  164. Node* LoadLinkedList()
  165. {
  166. // we are basically just dealing with addresses of objects
  167. // we will store the address of the current object
  168. // and the address of the previous and next objects
  169. /*****************/
  170.  
  171. // create linked list (using new for each Node)
  172. Node* start;
  173. Node* savePtr;
  174. Node* temp;
  175.  
  176. start = new Node(5); // create the 1st (start) Node
  177. savePtr = start; // save address of CURRENT Node in savePtr
  178. //savePtr->display(savePtr);
  179.  
  180. temp = new Node(10); // create the next NEW Node
  181. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  182. temp->setPrev(savePtr); // set setPrevious of CURRENT Node using saved pointer
  183. savePtr = temp; // save address of the new Node in savePtr
  184. //savePtr->display(savePtr);
  185.  
  186. temp = new Node(15); // create the next NEW Node
  187. savePtr->setNext(temp); // add Node to the end of the linked list
  188. temp->setPrev(savePtr);
  189. savePtr = temp; // save address of the new Node in savePtr
  190. //savePtr->display(savePtr);
  191.  
  192. temp = new Node(20); // create the next NEW Node
  193. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  194. temp->setPrev(savePtr);
  195. savePtr = temp; // save address of the new Node in savePtr
  196.  
  197. temp = new Node(25); // create the next NEW Node
  198. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  199. temp->setPrev(savePtr);
  200. savePtr = temp; // save address of the new Node in savePtr
  201.  
  202. temp = new Node(30); // create the next NEW Node
  203. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  204. temp->setPrev(savePtr);
  205.  
  206. return start; // return the beginning of the linked kist
  207. }
  208.  
  209. /*********************************
  210. * libraries here
  211. **********************************/
  212. #include <iostream>
  213. //#include <conio.h>
  214. using namespace std;
  215.  
  216. /*********************************
  217. * class definition
  218. **********************************/
  219. class Node
  220. {
  221. private:
  222. // data items
  223. int* numb; // numb
  224. Node* next; // Node pointer forward
  225. Node* prev; // Node pointer back
  226.  
  227. public:
  228. /*************************************
  229. * public data items and functions
  230. *************************************/
  231. // constructor
  232. Node(int);
  233.  
  234. // destructor
  235. ~Node();
  236.  
  237. // member functions prototypes
  238. void setNext(Node* Node) { next = Node; }
  239. void setPrev(Node* Node) { prev = Node; }
  240. void setnumb(int x) { *numb = x; }
  241.  
  242. Node* getNext() { return next; }
  243. Node* getPrev() { return prev; }
  244. int getnumb() { return *numb; }
  245.  
  246. void display(Node* current);
  247. };
  248.  
  249. /*********************
  250. * member functions
  251. *********************/
  252. Node::Node(int num)
  253. {
  254. numb = new int();
  255. setnumb(num);
  256. setNext(NULL);
  257. setPrev(NULL);
  258. }
  259.  
  260. Node :: ~Node()
  261. {
  262. delete numb;
  263. }
  264.  
  265.  
  266. /**********************************
  267. * list current node
  268. * previous node
  269. * next node
  270. * numb held by the node
  271. **********************************/
  272. void Node::display(Node* current)
  273. {
  274. cout << "n";
  275. cout << "number " << getnumb() << "n";
  276. cout << "prev Node " << getPrev() << "n";
  277. cout << "next Node " << getNext() << "n";
  278. cout << "current Node " << current << "n";
  279. cout << "n";
  280. }
  281.  
  282.  
  283. /*********************
  284. * PROTOTYPES
  285. *********************/
  286. Node* LoadLinkedList();
  287. void traverseList(Node** start);
  288. void deleteNode(Node** start, int numDel);
  289. void testInsertNode(Node** start, int numAdd);
  290. void testDeleteNode(Node** start);
  291. /*********************
  292. * main
  293. *********************/
  294. int main()
  295. {
  296. // address of the beginning of the linked list
  297. Node* start;
  298. // pointer to the address of the beginning of the LinkedList
  299. Node** ptrStart;
  300.  
  301. // load the linked list
  302. // save beginning of the linked list in start
  303. start = LoadLinkedList();
  304. ptrStart = &start;
  305.  
  306.  
  307. // print out the linkrd list
  308. Node display(Node* current);
  309. // starting at 'start' (the beginning)
  310. traverseList(ptrStart);
  311.  
  312. // run the test code for the testInsertNode function
  313. //testInsertNode(ptrStart);
  314.  
  315. // run the test code for the testDeleteNode function
  316. testDeleteNode(ptrStart);
  317. testDeleteNode(ptrStart);
  318.  
  319. cout << "n";
  320. //system("pause");
  321. return 0;
  322. }
  323.  
  324. /*****************************
  325. * print out the linked list
  326. *****************************/
  327. void traverseList(Node** start)
  328. {
  329. Node* current;
  330. current = *start;
  331. cout << "nn*** Linked List ***n";
  332.  
  333.  
  334. }
  335.  
  336. /***************************************
  337. * delete a Node from the linked list
  338. ***************************************/
  339. void deleteNode(Node** start, int numDelete)
  340. {
  341. Node* current;
  342. current = *start;
  343. delete current;
  344.  
  345. }
  346.  
  347. /**************************************
  348. * insert a Node into the linked list
  349. **************************************/
  350. void insertNode(Node** start, int numInsert)
  351. {
  352. Node* current;
  353. current = *start;
  354.  
  355. }
  356.  
  357. /********************************************
  358. * testing code for the deleteNode function
  359. ********************************************/
  360. void testDeleteNode(Node** start)
  361. {
  362. int testnode;
  363. testnode = 25;
  364. cout << "in delete noden";
  365. if (start == NULL)
  366. {
  367. cout << "This node does not exist!nn";
  368. }
  369. else
  370. {
  371. deleteNode(start, testnode);
  372. cout << "Node deletednn";
  373. }
  374. }
  375.  
  376. /********************************************
  377. * testing code for the insertNode function
  378. ********************************************/
  379. void testInsertNode(Node* start)
  380. {
  381.  
  382. }
  383.  
  384. Node* LoadLinkedList()
  385. {
  386. // we are basically just dealing with addresses of objects
  387. // we will store the address of the current object
  388. // and the address of the previous and next objects
  389. /*****************/
  390.  
  391. // create linked list (using new for each Node)
  392. Node* start;
  393. Node* savePtr;
  394. Node* temp;
  395.  
  396. start = new Node(5); // create the 1st (start) Node
  397. savePtr = start; // save address of CURRENT Node in savePtr
  398. //savePtr->display(savePtr);
  399.  
  400. temp = new Node(10); // create the next NEW Node
  401. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  402. temp->setPrev(savePtr); // set setPrevious of CURRENT Node using saved pointer
  403. savePtr = temp; // save address of the new Node in savePtr
  404. //savePtr->display(savePtr);
  405.  
  406. temp = new Node(15); // create the next NEW Node
  407. savePtr->setNext(temp); // add Node to the end of the linked list
  408. temp->setPrev(savePtr);
  409. savePtr = temp; // save address of the new Node in savePtr
  410. //savePtr->display(savePtr);
  411.  
  412. temp = new Node(20); // create the next NEW Node
  413. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  414. temp->setPrev(savePtr);
  415. savePtr = temp; // save address of the new Node in savePtr
  416.  
  417. temp = new Node(25); // create the next NEW Node
  418. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  419. temp->setPrev(savePtr);
  420. savePtr = temp; // save address of the new Node in savePtr
  421.  
  422. temp = new Node(30); // create the next NEW Node
  423. savePtr->setNext(temp); // set setNext of the PREVIOUS Node using address of CURRENT Node
  424. temp->setPrev(savePtr);
  425.  
  426. return start; // return the beginning of the linked kist
  427. }
Add Comment
Please, Sign In to add comment