Conversion of an INFIX expression to POSTFIX expression using STACK
STACK finds an application in converting an INFIX expression to POSTFIX expression. In this application STACK is used store the operators as items.
Procedure:
In order to convert an INFIX expression to POSTFIX expression. Call an INFIX expression as I and a POSTFIX expression as P. Add a’)’,right parentheses, at the end of I and PUSH a’ (‘,left parentheses on to STACK.. Scan I, from left to right till STACK is empty.
If the second character is operands like 2, 3, 4 or a, b, c etc just add it to P.If the scanned character is’(‘,a left parentheses then PUSH it on to the STACK.The resulting expression P is the POSTFIX expression.
For example, consider an INFIX expression: 8*3/2 ! (2+1)
First add a ‘)’ at the end of INFIX expression and call it I.
Scan I till STACK is empty. Scanned character for the first time is 8, an operand add it to P.
P:8
Next scanned character is *, an operator PUSH it on to the STACK.
STACK finds an application in converting an INFIX expression to POSTFIX expression. In this application STACK is used store the operators as items.
Procedure:
In order to convert an INFIX expression to POSTFIX expression. Call an INFIX expression as I and a POSTFIX expression as P. Add a’)’,right parentheses, at the end of I and PUSH a’ (‘,left parentheses on to STACK.. Scan I, from left to right till STACK is empty.
If the second character is operands like 2, 3, 4 or a, b, c etc just add it to P.If the scanned character is’(‘,a left parentheses then PUSH it on to the STACK.The resulting expression P is the POSTFIX expression.
For example, consider an INFIX expression: 8*3/2 ! (2+1)
First add a ‘)’ at the end of INFIX expression and call it I.
Scan I till STACK is empty. Scanned character for the first time is 8, an operand add it to P.
P:8
Next scanned character is *, an operator PUSH it on to the STACK.
Next scanned character is 3, an op[errand add it to P.
P:8 3
Next scanned character is /, an operator, check the TOP of STACK, it contains*, * is having same hierarchy as/, so POP it and add it to P. After that the TOP of STACK is ‘(‘,so PUSH scanned character /, on to STACK.
P:8 3 *