jaspwns

Untitled

Mar 1st, 2013
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. main.cpp--------------------------------------------------------------------
  2. #include "LinkList.h"
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. linkedlist obj;
  10. obj.pushfront(3);
  11. obj.pushfront(6);
  12. obj.pushfront(20);
  13. obj.popback();
  14. obj.pushfront(5);
  15. obj.pushback(12);
  16. obj.popfront();
  17. obj.deletel(1);
  18.  
  19.  
  20. obj.printlistfromfront();
  21. obj.printlistfromtail();
  22. obj.size();
  23.  
  24. cin.get();
  25. return 0;
  26.  
  27. }
  28.  
  29. Node.h----------------------------------------------------------------------
  30. #include <cstddef>
  31. #include <iostream>
  32. using namespace std;
  33.  
  34. class Node{
  35. public:
  36. int item;
  37. Node *next;
  38. Node *prev;
  39.  
  40. friend ostream& operator<< (ostream& print, const Node &value){
  41. return print << value.item;
  42. };
  43.  
  44.  
  45.  
  46.  
  47. Node(int data){
  48. item = data;
  49. next=NULL; //set it = to NULL by default so it doesnt hold a random value
  50. prev =NULL; //set it = to NULL by default so it doesnt hold a random value
  51. }
  52. };
  53.  
  54. LinkList.h---------------------------------------------------------------------------------
  55. #include "Node.h"
  56. #include <cstddef>
  57. #include<iostream>
  58. using namespace std;
  59.  
  60. class linkedlist{
  61. public:
  62.  
  63. linkedlist(){
  64. front=NULL;
  65.  
  66. };
  67.  
  68.  
  69.  
  70. void pushfront(int item){{
  71. if (front == NULL){
  72. front =tail = new Node(item);
  73. front -> next = NULL;
  74. tail -> prev = NULL;
  75. }
  76. else //or else
  77. {
  78. Node *temp;
  79. temp = new Node(item);
  80. temp -> next = front;
  81. front -> prev = temp;
  82. front = temp;
  83. }}
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. void popfront (){
  91. if (front == NULL)
  92. return;
  93. else
  94. {
  95. Node *temp;
  96. temp = front;
  97. front = front -> next;
  98. front -> prev = NULL;
  99. front -> next = (temp-> next)->next;
  100. delete temp;
  101. }
  102. }
  103.  
  104.  
  105.  
  106. void pushback( int item){
  107. if (front == NULL){
  108. front = tail = new Node(item);
  109. front -> next = NULL;
  110. tail -> prev = NULL;
  111. }
  112. else
  113. {
  114. Node *temp = new Node(item);
  115. tail -> next = temp;
  116. temp -> prev = tail;
  117. tail = temp;
  118.  
  119. }
  120. }
  121.  
  122.  
  123.  
  124. void popback(){
  125. Node* temp = tail;
  126. (temp -> prev) -> next = NULL;
  127. tail = temp -> prev;
  128. delete temp;
  129. }
  130.  
  131.  
  132.  
  133. void printlistfromfront(){
  134. Node* traverse;
  135. traverse = front;
  136. cout << "Items starting from the front of the list are:\a ";
  137. while (traverse != NULL){
  138. cout <<" " << *traverse;
  139. traverse = traverse -> next;
  140. }
  141. cout << endl;
  142.  
  143. }
  144.  
  145.  
  146. void printlistfromtail(){
  147. Node *traversle;
  148. traversle = tail;
  149. cout << "Items from the end of the list, going backwards are:\a ";
  150. while (traversle != NULL){
  151. cout << " " << *traversle;
  152. traversle = traversle -> prev;
  153. }
  154. cout << endl;
  155. }
  156.  
  157.  
  158.  
  159. int size(){
  160. Node* traverse;
  161. int sizel = 0;
  162. traverse = front;
  163. while (traverse != NULL){
  164. traverse = traverse -> next;
  165.  
  166.  
  167. sizel++;
  168. }
  169. cout << "The size of the list is: "<<sizel<<endl;
  170. return sizel;
  171.  
  172. }
  173.  
  174. void deletel(int ith){
  175.  
  176. if (front == NULL && tail == NULL){
  177. cout<<"there are no nodes to delete.";
  178. return;
  179. }
  180. if ((front -> next == NULL) && (tail -> prev == NULL)){
  181. front = tail = NULL;}
  182. else{
  183. int i = 0;
  184. Node *traverse = front;
  185. while (i < ith ){
  186. traverse = traverse -> next;
  187. i++;
  188. }
  189. (traverse -> next) -> prev = traverse -> prev;
  190. (traverse -> prev) -> next = traverse -> next;
  191.  
  192.  
  193. delete traverse;
  194. }
  195.  
  196. }
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203. private:
  204. Node *front;
  205. Node *tail;
  206.  
  207. };
Advertisement
Add Comment
Please, Sign In to add comment