Advertisement
Guest User

stack

a guest
Nov 11th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include "iostream"
  2. using namespace std;
  3.  
  4. #define   size   100
  5.  
  6. typedef char itemtype;
  7.  
  8. typedef struct
  9. { itemtype items [size];
  10.   int top;
  11. } stack;
  12.  
  13. //typedef struct stacktype stack;
  14.  
  15. int empty(stack s)
  16. {
  17.     return s.top == -1;
  18. }
  19.  
  20. int full(stack s)
  21. {
  22.     return s.top == size-1;
  23. }
  24.  
  25. void clear(stack & s)
  26. {
  27.     s.top = -1;
  28. }
  29.  
  30. void push(stack &s , itemtype i)
  31. {
  32.     s.items[++s.top] = i;
  33. }
  34.  
  35. itemtype pop(stack &s)
  36. {
  37.     return s.items[s.top--];
  38. }
  39.  
  40. int stacktop(stack s)
  41. {
  42.     return s.items[s.top];
  43. }
  44.  
  45. int openParenthesis(char ch)
  46. {
  47.     return (ch == '(' || ch == '[' || ch == '{');
  48. }
  49.  
  50. int closeParenthesis(char ch)
  51. {
  52.     return (ch == ')' || ch == ']' || ch == '}');
  53. }
  54.  
  55. int match( char c1, char c2)
  56. {
  57.     return ((c1 == '(' && c2 == ')') ||  (c1 =='['  && c2 == ']') || (c1 == '{' && c2 =='}' ));
  58. }
  59.  
  60. void main()
  61. { stack s;
  62.   char st[50];
  63.   itemtype ch;
  64.   cout << "Enter string ===> ";
  65.      cin >> st;
  66.   cout << "The entered string is ===> ";
  67.      cout << st <<endl;
  68.   clear(s);
  69.   int i = 0;
  70.      while (st[i])
  71.         { if (openParenthesis(st[i]))
  72.              if (!full(s))
  73.                  push(s, st[i]);
  74.              else {cout <<" Error stack is full\n"; return;}
  75.           else if (closeParenthesis (st[i]))
  76.                {if (! empty(s))
  77.                     ch = pop(s);
  78.                 else {cout <<" Error stack is empyu\n"; return;}
  79.                 if (! match(ch, st[i]))
  80.                    {cout <<" Error No macthing\n"; return;}
  81.                }
  82.           i ++;
  83.         }
  84.  
  85.   if(! empty(s))
  86.       cout <<" Error: invalid input \n";
  87.   else cout <<"Input is valid\n";
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement