Advertisement
Guest User

header

a guest
Jan 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #ifndef LINKED_LIST_H
  2. #define LINKED_LIST_H
  3.  
  4. #include <iostream>
  5.  
  6. struct node
  7. {
  8. int data;
  9. node *next;
  10. };
  11.  
  12. //linked_list
  13. class linked_list
  14. {
  15. private:
  16. node *head, *tail;
  17. public:
  18.  
  19. linked_list()
  20. {
  21. head = NULL;
  22. tail = NULL;
  23. }
  24.  
  25. node* searchNode(int data)
  26. {
  27. node *n = new node;
  28.  
  29. for(n = head; n != NULL; n = n->next)
  30. {
  31. if(n->data == data)
  32. {
  33. return n;
  34. }
  35. }
  36. return NULL;
  37.  
  38. }
  39.  
  40. void insertFront(int data)
  41. {
  42. node *new_node = new node;
  43. new_node->next = head;
  44. new_node->data = data;
  45.  
  46. if (head==NULL)
  47. {
  48. tail = new_node;
  49. }
  50.  
  51. head = new_node;
  52.  
  53. }
  54.  
  55. void insertEnd(int data)
  56. {
  57. node *new_node = new node;
  58. new_node->data = data;
  59. new_node->next = NULL;
  60.  
  61. if(head == NULL)
  62. {
  63. head = new_node;
  64. tail = new_node;
  65. }
  66. else
  67. {
  68. tail->next = new_node;
  69. tail = new_node;
  70. }
  71. }
  72.  
  73. void insertAfterNode(int data, int data2)
  74. {
  75. node *n = new node;
  76.  
  77. n = searchNode(data);
  78. if (n==NULL) std::cout << "Node does not exist!" << std::endl;
  79. else
  80. {
  81. node *new_node = new node;
  82. new_node->data = data2;
  83. node *temp = new node;
  84.  
  85. temp = n->next;
  86. new_node->next = temp;
  87. n->next = new_node;
  88. }
  89.  
  90. }
  91.  
  92. void deleteNode(int data)
  93. {
  94. node *n = new node;
  95.  
  96. for(n = head; n != NULL; n = n->next)
  97. {
  98. if(n->next->data == data)
  99. {
  100. node *willBdeleted = new node;
  101. willBdeleted = n->next;
  102.  
  103. n->next = willBdeleted->next;
  104. delete willBdeleted;
  105.  
  106. return;
  107. }
  108. }
  109. std::cout << "Node does not exist!" << std::endl;
  110.  
  111. }
  112.  
  113.  
  114. void print()
  115. {
  116. node *n = new node;
  117.  
  118. for(n = head; n != NULL; n = n->next)
  119. {
  120. std::cout << n->data;
  121. if(n->next != NULL) std::cout << "->";
  122. }
  123. std::cout << std::endl;
  124. }
  125. };
  126.  
  127. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement