Step 1: Add ")" to the end of the infix expression
Step 2: Push "(" onto the stack
Step 3: Repeat until each character in the infix notation is scanned
3.1: IF a "(" is encountered, push it on the stack
3.2: IF an operand ( whether a digit or a character) is encountered, add it
postfix expression.
3.3: IF a ")" is encountered, then
a. Repeatedly pop from stack and add it to the postfix expression until a "(" is
encountered.
b. Discard the "(". That is, remove the(from stack and do not add it to the
postfix expression
3.4: IF an operator O is encountered, then
a. Repeatedly pop from stack and add each operator ( popped from the stack) to
the postfix expression which has equal or higher precedence than O
b. Push the operator O to the stack.
[END OF IF]
Step 4: Repeatedly pop from the stack and add it to the postfix expression
until the stack is empty
Step 5: EXIT
Prefix Algorithm
Step 1: Reverse the infix string. Note that while reversing the string you
must interchange left and right parentheses.
Step 2: Obtain the postfix expression of the expression obtained from Step 1
using the above given postfix algorithm with slight change in
Step 3.4
IF an operator O is encountered, then
a. Repeatedly pop from stack and add each operator ( popped from the stack) to
the postfix expression which has equal or higher precedence than O
Step 3: Reverse the postfix expression to get the prefix expression