OneCompiler

brackets validity

134

#include <iostream>
using namespace std;
#define stacksize 10

struct stack {
int top;
char item[stacksize];

};
int push (stack *s,char x)
{
if (s->top == stacksize - 1)
return 0;
s->top++;
s->item[s->top] = x;
return 1;

}
char empty(stack *s) {

if (s->top == -1)
return('t');
else
return ('f');
}
char pop(stack *s)
{
if (empty(s) == 't')
return ('\0');
char z;

z = s->item[s->top];
s->top--;
return z;
}
int main ()
{
char x, symbol, valid = 't';
stack s;
s = new stack;
s->top = -1;
cout << "Please enter the string to check brackets\n"; cin >> symbol;
while ((symbol != '.') && (valid == 't'))
{
if ((symbol == '(') || (symbol == '[') || (symbol == '{')) push(s, symbol);
else
if ((symbol == '0') || (symbol == '1') || (symbol == '2') ||
(symbol == '3') || (symbol == '4') || (symbol == '5') || (symbol == '6') || (symbol == '7') || (symbol == '8') || (symbol == '9') || (symbol == '
') || (symbol == '/') || (symbol == '+') || (symbol == '-')) valid = 't';
else
{
if ((symbol == ')') || (symbol == ']') || (symbol == '}'))
x = pop(s); if (x == '\0') valid = 'f';
else
switch(x)
{case'(': if (symbol == ')') valid='t'; else valid = 'f'; break;
case'[': if (symbol == ']') valid = 't'; else valid = 'f'; break;

case'{': if (symbol == '}') valid = 't'; else valid ='f'; break;
default: valid='f';} }
cin>>symbol; }
if (empty(s) == 'f')
valid = 'f';
if (valid == 't')
cout << "The string is true.\n";
else
cout << "The string is false.\n";
return 0;}