Advertisement
allia

стек

Nov 23rd, 2020 (edited)
682
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. struct IElem
  6. {
  7.    int value;
  8.    IElem *next;
  9. };
  10.  
  11. class IStack
  12. {
  13.    IElem *pbeg, *pend;
  14.    int Size;
  15. public:
  16.    IStack()
  17.    {
  18.      pbeg = NULL;
  19.    }
  20.    int get_size()
  21.    {
  22.      return Size;
  23.    }
  24.    int top();
  25.    void push(int val);
  26.    int pop();
  27. };
  28.  
  29. void IStack::push(int val)
  30. {
  31.    IElem *ptr = new IElem;
  32.    ptr->value = val;
  33.    ptr->next = pbeg;
  34.    pbeg = ptr;
  35.    Size++;
  36. }
  37.  
  38. int IStack::pop()
  39. {
  40.    if (!pbeg)
  41.     return -1;
  42.    IElem *ptr = pbeg;
  43.    int val = pbeg->value;
  44.    pbeg = pbeg->next;
  45.    delete ptr;
  46.    return val;
  47. }
  48.  
  49. int main()
  50. {
  51.   IStack stack;
  52.   string s, time;
  53.  
  54.   int n = 1, znach = 0;
  55.  
  56.   cin >> s;
  57.   int dlina = s.length();
  58.   int i = 0;
  59.  
  60.   while (i < dlina && n != 0)
  61. {
  62.   if (s[i]=='(' || s[i]=='[' || s[i] =='{' || s[i] =='<')
  63.     {
  64.       stack.push(s[i]);
  65.       znach++;
  66.       // cout << n << " ";
  67.     }
  68.   else if (s[i] ==')')
  69.    {
  70.      if (stack.pop()=='(')
  71.       n = 1;
  72.     else n = 0;
  73.     //cout << n << " ";
  74.    }
  75.   else if (s[i] ==']' )
  76.     {
  77.      if (stack.pop()=='[')
  78.       n = 1;
  79.       else  n = 0;
  80.       //cout << n << " ";
  81.     }
  82.   else if (s[i] =='}')
  83.     {
  84.      if (stack.pop()=='{')
  85.        n = 1;
  86.       else n = 0;
  87.       //cout << n << " ";
  88.     }
  89.   else if (s[i] =='>')
  90.     {
  91.       if (stack.pop()=='<')
  92.        n = 1;
  93.        else n = 0;
  94.       // cout << n << " ";
  95.     }
  96.     i++;
  97. }
  98.  
  99. cout << n;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement