You are on page 1of 2

#include <stdio.

h>
#define size 50
int top=-1;
int a[size];
void push();
int pop();
int main()
{
char infix[50],ch;
int i=0,flag=0;

printf("\nEnter an infix expression ");


scanf("%s",infix);
while((ch=infix[i++])!='\0')
{

if( ch=='(' || ch =='[' || ch == '{' )


{
push(ch);
}
else if ( ch == ')' )
{
if( a[top] == '(' )
pop();

else
{
printf("Unbalanced exp");
flag=1;
break;
}
}
else if (ch == ']' )
{
if( a[top] == '[' )
pop();
else
{
printf("Unbalanced exp");
flag=1;
break;
}
}
else if (ch == '}' )
{
if( a[top]== '{' )
pop();
else
{
printf("Unbalanced exp");
flag=1;
break;
}
}
}
if( top == -1 && flag==0 )
printf("Exp is balanced");
else
printf("Exp is not balanced");
}

void push(int ele)


{
a[++top]=ele;
}
int pop()
{
return a[top--];
}

You might also like