Advertisement
Ro_ro400_

Untitled

Mar 7th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Node
  6. {
  7.     int data=0;
  8.     Node* next=0;
  9.  
  10. };
  11.  
  12. void push( Node *head, int n)
  13. {
  14.     Node *newNode = new Node;
  15.     newNode->data = n;
  16.     newNode->next = 0;
  17.     Node *cur = head;
  18.     while(cur)
  19.     {
  20.         if(cur->next == 0)
  21.         {
  22.             cur->next = newNode;
  23.             return;
  24.         }
  25.         cur = cur->next;
  26.     }
  27. }
  28.  
  29. int pop(struct Node *head)
  30. {
  31.     int q=0;
  32.     Node *a = head;
  33.     while(a->next)
  34.     {
  35.         a = a->next;
  36.         q++;
  37.     }
  38.     int w = a->data;
  39.     Node *z = head ;
  40.     while(q>1)
  41.     {
  42.  
  43.         Node* tmpNode;
  44.         tmpNode = head;
  45.         head = tmpNode->next;
  46.         q--;
  47.     }
  48.     delete head->next;
  49.     head->next=0;
  50.     z=head;
  51.     return w ;
  52. }
  53.  
  54. Node* unshift ( Node *head, int n)
  55. {
  56.     Node *newNode = new Node;
  57.     newNode->data = n;
  58.     newNode->next = head;
  59.     return newNode;
  60. }
  61.  
  62. int shift (Node *&head)
  63. {
  64.     Node *a;
  65.     int w = head->data;
  66.     a=head->next;
  67.     delete head;
  68.     head=a;
  69.     return w ;
  70. }
  71.  
  72. int main()
  73. {
  74.     Node* root = new Node;
  75.  
  76.  
  77.     root = unshift (root, 10);
  78.     root = unshift (root, 20);
  79.     cout << shift  (root)<< endl << endl;
  80.     cout << shift  (root)<< endl << endl;
  81.     cout << shift  (root)<< endl << endl;
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement