Join the social network of Tech Nerds, increase skill rank, get work, manage projects...

• # Algorithm for converting infix expression to postfix expression form

• 0
• 0
• 0
• 0
• 0
• 0
• 0
• 0
• 456
Comment on it

An algorithm to convert infix expression into a postfix expression using “Stack”. The purpose of stack is to reverse the order of the operators in the expression as it is used to hold operators rather than numbers.

``````POSTFIX (N, M)
Let us assume that N is the arithmetic expression written in an infix notation. This algorithm will find the equivalent postfix expression M.
1. Push (  onto STACK, and add ) to the end of N.
2. Scan N from left to right and repeat steps 3 to 6 for each element of N until the STACK is empty.
3. If an operand is encountered, add it to M.
4. If a left parenthesis is encountered, push it onto STACK.
5. If an operator (*) is encountered, then:
(a) Add (*) to STACK. [End of if structure].
(b) Repeatedly pop from STACK and add M each operator (on the top of STACK) which has the same precedence or higher precedence than (*).
6. If a right parenthesis is encountered, then:
(a) Repeatedly pop from STACK and add to M each operator (on the top of STACK) until a left parenthesis is encountered.
(b) Remove the left parenthesis. [End of if structure].
[End of loop in step 2].
7. Exit.``````

Example 1: X * Y + Z is in infix notation form after applying an algorithm its equivalent postfix notation will be X Y * Z +

 S. No Current symbol stack operator postfix string 1 X X 2 * * X 3 Y * X Y 4 + + X Y * {* has higher precedence than +} 5 Z + X Y * Z 6 X Y * Z +

Firstly, the operands are printed when it is read. Next an operator is pushed onto the stack if it is empty. If the operator on the top of the stack has higher precedence than the one being read, pop and print the one on top and then push the new operator on. At the end of the expression, pop the operators on the stack one at a time and then print them.

Example 2: M *( Q + W) becomes M Q W + *

 S. No. Current symbol stack operator postfix string 1 M M 2 * * M 3 ( * ( M 4 Q * ( M Q 5 + * ( + M Q 6 W * ( + M Q W 7 ) * M Q W+ 8 M Q W + *

An expression in parenthesis must be done first. Here “(“ was pushed to the operator stack as to provide a marker. The stack was treated as empty and the next operator “+” was pushed on. Then when the right parenthesis is read, the stack is popped until the corresponding left parenthesis is found.

## 0 Comment(s)

OR
OR
Register

OR
Fill out the form below and instructions to reset your password will be emailed to you:

• Hire
• Post Projects

### Post Projects

• All at 0 Cost ....
• Post Tech Job
• Select Best Bidder
• Track the Project
• Approve Work and Pay safely
• Browse Nerds
• Work
• Find Projects Find Projects
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General
• Manage
• Company Company

### Manage Company

• All at 0 Cost ....
• Manage Company and Employee Profiles
• Company wide Employee Productivity Reports
• Knowledge Sharing and Collaboration Tools
• Get Sales Lead and Bid for Tech Projects
• Send Invoices and Receive Payment Safely
• Learn
• Nerd Digest Nerd Digest
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General
• Tech Q & A Tech Q & A
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General