Advertisement
Josif_tepe

Untitled

Mar 24th, 2025
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.01 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int max_size = 1000;
  4. // implementacija na stek
  5. struct stack {
  6.     string niza[max_size];
  7.     int idx;
  8.  
  9.     void init() {
  10.         idx = -1;
  11.     }
  12.  
  13.     bool isFull() {
  14.         if(idx == max_size - 1) {
  15.             return true;
  16.         }
  17.         else {
  18.             return false;
  19.         }
  20.     }
  21.  
  22.     bool isEmpty() {
  23.         if(idx == -1) {
  24.             return true;
  25.         }
  26.         else {
  27.             return false;
  28.         }
  29.     }
  30.     void push(string x) {
  31.         if(isFull() == true) {
  32.             cout << "stekot e poln" << endl;
  33.             exit(-1);
  34.         }
  35.         idx++;
  36.         niza[idx] = x;
  37.     }
  38.  
  39.     string pop() {
  40.         if(isEmpty() == true) {
  41.             cout << "stekot e prazen" << endl;
  42.             exit(-1);
  43.         }
  44.         string res = niza[idx];
  45.         idx--;
  46.         return res;
  47.     }
  48.     string top() {
  49.         if(isEmpty() == true) {
  50.             cout << "stekot e prazen" << endl;
  51.             exit(-1);
  52.         }
  53.         return niza[idx];
  54.     }
  55.  
  56.     int size() {
  57.         return idx + 1;
  58.     }
  59. };
  60.  
  61.  
  62. int main() {
  63.     cout << "Vnesi broj na patiki: " << endl;
  64.     int n;
  65.     cin >> n;
  66.  
  67.     stack s;
  68.     s.init();
  69.     for(int i = 0; i < n; i++) {
  70.         cout << "Vnesi patika: ";
  71.         string patika;
  72.         cin >> patika;
  73.            
  74.         // ako nema patiki za sparuvanje, samo ja dodavame momentalnata patika na vrvot
  75.         if(s.isEmpty() == true) {
  76.             s.push(patika);
  77.         }
  78.         else {
  79.             // proveruvame dali momentalnata patika e razlicna so taa na vrvot za da mozhe da gi spoime
  80.             if(s.top() != patika) {
  81.                 // ako mozhe, ja trgame od vrvot
  82.                 s.pop();
  83.             }
  84.             else {
  85.                 // ako ne mozhe, ja stavame na vrvot
  86.                 s.push(patika);
  87.             }
  88.         }
  89.     }
  90.     // kolku sto ima patiki vo stackot, tolku nespareni ni ostanuvaat
  91.     cout << s.size() << endl;
  92.  
  93.     return 0;
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement