char pop()void main(char exp[max],tempint iflag= clrscr()printf("enter an expression ")gets(exp)for( = ; <strlen(exp); ++if(exp[ ]=='(|exp[ ]=='{|exp[ ]=='['push(exp[ ])if(exp[ ]==')|exp[ ]=='}|exp[ ]==']'if(top =- flag= else temp=pop()if(exp[ ]==')&(temp=='{|temp=='[')flag= if(exp[ ]=='}&(temp=='(|temp=='[')flag= if(exp[ ]==']&(temp=='(|temp=='{')flag= if(top>= flag= if(flag== printf("\ valid expression")else printf("\ invalid expression")void push(char cif(top =(max- )printf("stack overflow\ ")else top=top+ stk[topcchar pop(if(top =- printf("\ stack underflow")else return(stk[top--])output enter an expression ( ( )valid expression evaluation of arithmetic expressions polish notations infixpostfixand prefix notations are three different but equivalent notations of writing algebraic expressions but before learning about prefix and postfix notationslet us first see what an infix notation is we all are familiar with the infix notation of writing algebraic expressions