File tree Expand file tree Collapse file tree 1 file changed +117
-0
lines changed Expand file tree Collapse file tree 1 file changed +117
-0
lines changed Original file line number Diff line number Diff line change 1+ #include < stdio.h>
2+ #include < stdlib.h>
3+ #define SIZE 5
4+ #include < iostream>
5+ using namespace std ;
6+ char a[SIZE];
7+ int top=-1 ;
8+ void push (int data)
9+ {
10+ if (top==SIZE-1 )
11+ {
12+ throw " Sorry! stack is full no more space\n " ;
13+ }
14+ else {
15+ a[++top]=data;
16+ // printf("element inserted\n");
17+ }
18+ }
19+ void pop ()
20+ {
21+
22+ if (top==-1 )
23+ {
24+ throw " empty stack can't be deleted\n " ;
25+ // printf("empty stack can't deleted\n");
26+ }
27+ else
28+ {
29+ // printf("deleted = %d\n",a[top]);
30+ top--;
31+ }
32+
33+ }
34+ int topIndex ()
35+ {
36+ if (top==-1 )
37+ {
38+ throw " Empty Stack" ;
39+ }
40+ else
41+ {
42+ return a[top];
43+ }
44+ }
45+ int size ()
46+ {
47+ return top+1 ;
48+ }
49+ bool empty ()
50+ {
51+ return top==-1 ;
52+ }
53+ int main ()
54+ {
55+ /* char ele;
56+ char ch ='y';
57+ while(ch=='y')
58+ {
59+
60+ try{
61+ if(ele=='{')
62+ push(ele);
63+ else
64+ pop();
65+ cout<<"enter more put y";
66+ cin>>ch;
67+ }
68+ catch(const char *msg)
69+ {
70+ cout<<"not balanced";
71+ }
72+ }
73+ if(top==-1)
74+ cout<<"balanced";*/
75+ string braces=" {[]}}" ;
76+ try {
77+ for (char c:braces)
78+ {
79+ if (c==' {' || c==' (' || c==' [' )
80+ {
81+ push (c);
82+ }
83+ else {
84+ if (c==' }' && topIndex ()==' {' )
85+ {
86+ pop ();
87+ }
88+ else if (c==' )' && topIndex ()==' (' )
89+ {
90+ pop ();
91+ }
92+ else if (c==' ]' && topIndex ()==' [' )
93+ {
94+
95+ pop ();
96+ }
97+ else
98+ {
99+ throw " not balnced" ;
100+ }
101+ }
102+ }
103+ if (empty ()==true )
104+ {
105+ cout<<" balanced" ;
106+ }
107+ else
108+ {
109+ cout<<" not balanced" ;
110+ }
111+ }
112+ catch (...)
113+ {
114+ cout<<" not balanced" ;
115+ }
116+ }
117+
You can’t perform that action at this time.
0 commit comments