Advertisement
Guest User

Untitled

a guest
Jun 24th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Node{
  6. int data;
  7. Node* next;
  8. };
  9.  
  10. Node* head;
  11.  
  12. void print();
  13. void insert(int x, int pos);
  14. void deleteNode(int pos);
  15. void insertAtEnd(int x);
  16. void reverseRev(Node* head);
  17.  
  18. int main(){
  19. head = NULL;
  20.  
  21. insert(2,1); //2
  22. insert(3,2); //2 3
  23. insert(6,1); //6 2 3
  24. insert(0,2); //6 0 2 3
  25. insertAtEnd(7); // 6 0 2 3 7
  26. insertAtEnd(9); // 6 0 2 3 7 9
  27. insert(5,2); //6 5 2 3 7 9
  28. print();
  29. reverseRev(head);
  30. print();
  31. return 0;
  32. }
  33.  
  34. void insert(int x, int pos){
  35. Node* temp = head;
  36. Node* n = new Node();
  37. n->data = x;
  38. if(pos == 1){
  39. n->next = head;
  40. head = n;
  41. return;
  42. }
  43.  
  44. for(int i =1;i<=pos-2;i++){
  45. temp=temp->next;
  46. }
  47.  
  48. n->next = temp->next;
  49. temp->next = n;
  50.  
  51. }
  52.  
  53. void print(){
  54. Node* temp = head;
  55.  
  56. while(temp!=NULL){
  57. cout << temp->data << " " ;
  58. temp = temp->next;
  59. }
  60. cout<<endl;
  61. }
  62.  
  63.  
  64. void insertAtEnd(int x){
  65. Node* temp = new Node();
  66. temp->data = x;
  67. temp->next = NULL;
  68.  
  69. Node* ptr = head;
  70. while(ptr->next!=NULL){
  71. ptr = ptr->next;
  72. }
  73. ptr->next = temp;
  74. }
  75.  
  76. void reverseRev(Node* ptr){
  77.  
  78. if(ptr->next == NULL){
  79. head = ptr;
  80. return;
  81. }
  82.  
  83. reverseRev(ptr->next);
  84. Node* temp = ptr->next;
  85. temp->next = ptr;
  86. ptr->next = NULL;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement