The infix and postfix expressions can have the following operators: '+', '-', '%','*', '/' and alphabets from a to z. The precedence of the operators (+, -) is lesser than the precedence of operators (*, /, %). Parenthesis has the highest precedence and the expression inside it must be converted first. In this section, we will learn how to convert infix expression to postfix expression and postfix to infix expression through a Java program.
For performing the conversion, we use Stack data structure. The stack is used to store the operators and parenthesis to enforce the precedence Start parsing the expression from left to right. Before moving ahead in this section, ensure that you are friendly with the stack and its operations. Let's have a look at infix and postfix expressions.
Infix expressions are those expressions in which the operator is written in-between the two or more operands. Usually, we use infix expression. For example, consider the following expression.
Postfix expressions are those expressions in which the operator is written after their operands. For example, consider the following expression.
Infix Expression | Postfix Expression |
---|---|
A*B/C | AB*C/ |
(A/(B-C+D))*(E-A)*C | ABC-D+/EA-*C* |
A/B-C+D*E-A*C | AB/C-DE*AC*- |
Convert the (X - Y / (Z + U) * V) infix expression into postfix expression.
S.N. | Input | Operand Stack | Postfix Expression |
---|---|---|---|
1 | ( | ( | - |
2 | X | ( | X |
3 | - | ( - | X |
4 | Y | ( - | XY |
5 | / | ( - / | XY |
6 | ( | ( - / ( | XY |
7 | Z | ( - / ( | XYZ |
8 | + | ( - / ( + | XYZ |
9 | U | ( - / ( + | XYZU |
10 | ) | ( - / | XYZU+ |
11 | * | ( - * | XYZU+/ |
12 | V | ( - * | XYZU+/V |
13 | ) | - | XYZU+/V*- |
Let's implement the above algorithm in a Java program.
InfixToPostfixConversion.java
Output:
Convert the AB + CD - / postfix expression into infix expression.
S.N. | Input | Operand Stack | Infix Expression |
---|---|---|---|
1 | A | A | - |
2 | B | A, B | - |
3 | + | A + B | A+ B |
4 | C | A + B, C | - |
5 | D | A + B, C, D | - |
6 | - | A + B, C - D | C - D |
7 | / | A + B / C - D | A + B / C - D |
Let's implement the above algorithm in a Java program.
PostfixToInfixConversion.java
Output:
For Videos Join Our Youtube Channel: Join Now