Infix to Prefix Examples

In this class, we will learn infix to prefix examples involving very basic to advanced-level examples. Let’s start with a very basic example

Example 01: A + B

Step 1: Reverse the Infix Expression

The original infix expression A + B can be reversed to B + A, which switches the order of operands while retaining the operator.

infix to prefix example 01- Step 01

Step 2: Scanning the Reversed Infix Expression

We scan each symbol of the reversed infix expression B + A. The operands B and A are printed directly, forming the output B A. The operator + is pushed onto the stack. At the end of the expression, the remaining operator is popped from the stack and appended to the output, resulting in the final postfix expression B A +.

infix to prefix example 01- Step 02

Step 3: Reverse the Postfix Expression

Finally, we reverse the postfix expression B A + to obtain the prefix expression + A B. This is the required final prefix expression.

infix to prefix example 01- Step 03

Example 02: A + B + C

Step 1: Reverse the Infix Expression

The original infix expression A + B + C can be reversed to C + B + A, which maintains the same structure but changes the order of operands and operators.

infix to prefix example 02- Step 01

Step 2: Scanning the Reversed Infix Expression

In a second step we will scan all symbols of reversed infix expressions.  Operands C, B, and A are printed directly, by forming the output C B A. Operators are pushed onto the stack, with the first + added, followed by the second +. At the end of the expression, the remaining operators are popped and appended to the output, resulting in the final postfix expression C B A++. Following diagram explain it in detail

infix to prefix example 02- Step 02

Step 3: Reverse the Postfix Expression

The postfix expression CBA++ reverses to the prefix expression ++ABC

infix to prefix example 02- Step 03 - updated

+ + A B C  is a Final Prefix Expression

Example 03: A + B + C - D

Step 1: Reverse the Infix Expression

The original infix expression A + B + C - D can be reversed to D - C + B + A, which changes the order of operands and operators while keeping the basic structure intact.

Step 2: Scanning the Reversed Infix Expression

In this step, we scan each symbol of the reversed infix expression D - C + B + A. The operands D, C, B, and A are printed directly, forming the output D C B A. The operators - and + are pushed onto the stack, with the first - added, followed by the second +. At the end of the expression, we pop the remaining operators from the stack and append them to the output, resulting in the final postfix expression D C - B A + +. Order of execution is explain the following diagram

infix to prefix example 03- Step 02

Important:When the stack top contains an operator that matches the upcoming operator, it is simply appended to the stack. For example, if a + is at the top and another + arrives, the stack will hold ++.

Step 3: Reverse the Postfix Expression

Next, we reverse the postfix expression D C -B A + + to obtain the prefix expression ++A B-CD. This is the desired final prefix expression.

infix to prefix example 03- Step 01

infix to prefix example 03- Step 03

Example 04: A * (B + C) – D

Step 1: Reverse the Infix Expression

The original infix expression A * (B + C) - D can be reversed to D - (C + B) * A, altering the order of operands and operators while keeping the structure intact.

infix to prefix example 04- Step 01

Step 2: Scanning the Reversed Infix Expression

In this step, we scan each symbol of the reversed infix expression D - (C + B) * A. The operands D, C, B, and A are printed directly, forming the output D C B A. The operators -, +, and * are pushed onto the stack in sequence, with the first - added, followed by +, and *. At the end of the expression, the remaining operators are popped from the stack and appended to the output, resulting in the final postfix expression D C B A + * -.

infix to prefix example 04- Step 02

Step 3: Reverse the Postfix Expression

Finally, we reverse the postfix expression D C B A + * - to obtain the prefix expression - * A + B C D. This is the desired final prefix expression.

infix to prefix example 04- Step 03

Example 05: ((A + B) * C) – (D / E)

Step 1: Reverse the Infix Expression

The original infix expression ((A + B) * C) - (D / E) is reversed to (E / D) - (C * (B + A)), which changes the order of operands and operators while maintaining the overall structure.

infix to prefix example 05- Step 01

Step 2: Scanning the Reversed Infix Expression

Next, we scan each symbol of the reversed infix expression E / D - C * (B + A). The operands E, D, C, B, and A are printed directly, forming the output E D C B A. The operators /, -, *, and + are pushed onto the stack, with the first / added, followed by -, then *, and finally +. At the end of the expression, the remaining operators are popped from the stack and appended to the output, resulting in the final postfix expression E D / C B A + * -.

infix to prefix example 05- Step 02

Step 3: Reverse the Postfix Expression

Finally, we reverse the postfix expression E D / C B A + * - to obtain the prefix expression - * C + B A / D E. This is the desired final prefix expression.

infix to prefix example 05- Step 03