Advertisement
Garey

SAA_Danny_zad2

Apr 3rd, 2018
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct element
  6. {
  7.     int key;
  8.     element*next;
  9. }*f = NULL, *l = NULL;     // f - first ;   l - last
  10.  
  11. void push(int n)
  12. {
  13.     element *pointer = l;
  14.     l = new element;
  15.     l->key = n;
  16.     l->next = NULL;
  17.     if (pointer)
  18.         pointer->next = l;
  19.     else
  20.         f = l;
  21. }
  22.  
  23. int pop(int &n)
  24. {
  25.     if (f) {
  26.         element *pointer = f;
  27.  
  28.         n = f->key;
  29.         f = (f->next);
  30.  
  31.         delete pointer;
  32.  
  33.         if (f == NULL) {
  34.             l = NULL;
  35.         }
  36.  
  37.         return 1;
  38.     }
  39.     else
  40.         return 0;
  41. }
  42.  
  43. int del_k(int k)
  44. {
  45.     if (f) {
  46.         element *pointer = f;
  47.         element *helper = pointer;
  48.  
  49.         while (pointer->key != k && pointer->next) {     // dokato e razlichno ot k i ima sledvasht element
  50.             helper = pointer;                            // predi da premine kum sledvashtiqt element, zapazva tekushtiqt v nov ukazatel
  51.             pointer = pointer->next;                     // premestva se napred kum sledvashtiqt element
  52.         }
  53.  
  54.         if (pointer->key == k) {
  55.  
  56.             if (f->key == k)          // ako purviqt element e raven na k
  57.                 f = f->next;          // purviqt element se premestva s edin element napred
  58.             else
  59.                 helper->next = pointer->next;        // preskacha elementa
  60.  
  61.             delete pointer;                          // iztriva go
  62.             return 1;
  63.         }
  64.         else {
  65.             cout << "Nqmam k, nqa kvo da triq";
  66.  
  67.             return 0;
  68.         }
  69.     }
  70.     else
  71.         cout << "Prazna opashka !!";
  72.  
  73.     return 0;
  74. }
  75.  
  76. void list() {
  77.     if (f) {
  78.         element *pointer = f;
  79.  
  80.         while (pointer) {
  81.             cout << "\t" << pointer->key;
  82.             pointer = pointer->next;
  83.         }
  84.     }
  85.     else {
  86.         cout << "\nEmpty";
  87.     }
  88. }
  89.  
  90. int main()
  91. {
  92.     int k, n = 0;
  93.     do {
  94.         cout << "\n Digit: ";
  95.         cin >> k;
  96.         push(k);
  97.         n++;
  98.     } while (k > 0);
  99.  
  100.     cout << "\n Opashkata:  ";
  101.     list();
  102.     cout << endl;
  103.  
  104.     cout << "\n Opashkata sled iztritiq posleden:  ";
  105.  
  106.     while (pop(k)) {
  107.         if (n != 1) {
  108.             cout << "\t" << k;
  109.             push(k);
  110.             n--;
  111.         }
  112.         else
  113.             pop(k);
  114.     }
  115.  
  116.     cout << endl << endl;
  117.  
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement