Facebook
From krul, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 217
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. /*
  5. 1. zamienia co 2 miejsce
  6. 2. do funkcji x, i to co przed x na koniec
  7. 3. zamiana parami
  8. */
  9.  
  10. struct node
  11. {
  12.         int val;
  13.         node *next;
  14. };
  15.  
  16. void add(node *&H, int x)
  17. {
  18.         node *p = new node;
  19.         p->val = x;
  20.         p->next = H;
  21.         H = p;
  22. }
  23. void show(node *H)
  24. {
  25.         cout << "H->";
  26.         node *p = H;
  27.         while (p != NULL)
  28.         {
  29.                 cout << p->val << "->";
  30.                 p = p->next;
  31.         }
  32.  
  33.         cout << "NULL\n";
  34.         cout << endl;
  35. }
  36.  
  37. void del(node *&H)
  38. {
  39.         if (H != 0)
  40.         {
  41.                 node *p = H;
  42.                 H = H->next;
  43.                 delete p;
  44.         }
  45.         cout << endl;
  46. }
  47. void parzystaPo(node *&H)
  48. {
  49.         if (H != NULL)
  50.         {
  51.                 node *tmp = H;
  52.  
  53.                 while (tmp->next!= NULL)
  54.                 {
  55.                         node *p = new node;
  56.                         p->val = tmp->next->val;
  57.                         p->next = tmp->next;
  58.                         tmp->next = p;
  59.                         tmp = p->next->next;
  60.                 }
  61.         }
  62.  
  63. }
  64.  
  65. void wyrzucPrzed(node *&H, int x)
  66. {
  67.         node *p = H;
  68.         node *szuk = new node;
  69.  
  70.         while (H != NULL)
  71.         {
  72.                 if (p->val == x)
  73.                 {
  74.                         szuk->val = x;
  75.                 }
  76.                 else p = p->next;
  77.         }
  78.  
  79. while (H != NULL)
  80.  
  81.         {
  82.                 node *koniec = new node;
  83.                 koniec->next = NULL;
  84.                 koniec->val = x;
  85.                 p = H;
  86.                 if (p)
  87.                 {
  88.                         while (p->next) p = p->next;
  89.                         p->next = koniec;
  90.                
  91.                 }
  92.                 else H = koniec;
  93.         }
  94.        
  95. }
  96.  
  97. int main()
  98. {
  99.         node *H = NULL;
  100.         int n;
  101.         cout << "Ile elementow utworzymy? : ";
  102.         cin >> n;
  103.  
  104.         for (int i = 0; i < n; i++)
  105.         {
  106.                 int y;
  107.                 cout << "Podaj liczbe: ";
  108.                 cin >> y;
  109.                 add(H, y);
  110.         }
  111.  
  112.         /*int x;
  113.         cout << "Z przed jakiej liczby wyrzucic na koniec: ";
  114.         cin >> x;
  115.         */
  116.         show(H);
  117.         parzystaPo(H);
  118.         show(H);
  119.         system("pause");
  120.  
  121. }
  122.