Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. struct node {
  6.  int val;
  7.  node *next;
  8. };
  9.  
  10. void add(node*& H, int x ) {
  11.     node * p = new node;
  12.     p->val = x;
  13.     p->next = H;
  14.     H=p;
  15. }
  16.  
  17. int size(node* H) {
  18.     int size = 0;
  19.     while(H != NULL) {
  20.         H = H->next;
  21.         size++;
  22.     }
  23.    return size;
  24. }
  25.  
  26. void show(node* H) {
  27.     node * p = H;
  28.     cout <<"HEAD->";
  29.     while(p != NULL) {
  30.         cout << p->val <<"->";
  31.         p = p->next;
  32.     }
  33.     cout << "NULL"<<endl;
  34. }
  35.  
  36. void delTop(node*& H) {
  37.     if( H != NULL) {
  38.         node *p = H;
  39.         H = p->next;
  40.         delete p;
  41.     }
  42. }
  43.  
  44. void delX(node*& H, int x) {
  45.     if(H != NULL) {
  46.         node *p = H;
  47.         if(H->val == x) {
  48.             delTop(H);
  49.         } else {
  50.             while(p->next != NULL && p->next->val != x) {
  51.                 p = p->next;
  52.             }
  53.  
  54.             if(p->next != NULL) {
  55.                 delTop(p->next);
  56.             }
  57.         }
  58.     }
  59. }
  60.  
  61. void delEverySecondElement(node*& H) {
  62.     delTop(H);
  63.     node *p = H;
  64.     node *p2 = H;
  65.     while(p != NULL && p->next != NULL) {
  66.         p = p->next;
  67.         p2->next = p->next;
  68.         p2 = p2->next;
  69.         delete p;
  70.         p = p2;
  71.     }
  72.  
  73. }
  74.  
  75. void copyNumberBehindIfisEven(node*& H) {
  76.     node *p = H;
  77.     node *p2 = H;
  78.     while(p != NULL && p->next != NULL) {
  79.         if(p->val%2 == 0) {
  80.             cout << p->val;
  81.         }
  82.         p = p->next;
  83.     }
  84.  
  85. }
  86.  
  87.  
  88. bool isEmpty(node* H) {
  89.     if(H !=NULL) {
  90.         return 0;
  91.     } else {
  92.         return 1;
  93.     }
  94. }
  95.  
  96. void top(node* H) {
  97.     if(H!=NULL) {
  98.         cout << H->val << endl;
  99.     } else {
  100.         cout << "empty";
  101.     }
  102. }
  103.  
  104. void push() {}
  105.  
  106. void pop() {}
  107.  
  108. int main()
  109. {
  110.     node *H = NULL;
  111.     add(H, 12);
  112.     add(H, 17);
  113.     add(H, 18);
  114.     add(H, 20);
  115.     add(H, 22);
  116.     add(H, 24);
  117.     add(H, 2);
  118.     add(H, 4);
  119.     add(H, 6);
  120.     show(H);
  121.     cout << "Rozmiar: " << size(H) << endl;
  122.     delEverySecondElement(H);
  123.     show(H);
  124.  
  125.     copyNumberBehindIfisEven(H);
  126.  
  127.     return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement