**Objective: **Given an Infix expression, write an algorithm to convert it into Prefix expression.

**Example**:

Input: Infix expression -A + BOutput: Prefix expression-+ABInput: Infix expression -A+B*(C^D-E)Output: Prefix expression-+A*B-^CDE

**Approach**: Use Stack

- Operator stack: This stack will be used to keep operations (+, -, *, /, ^)

**Order of precedence of operations**–

- ^ (Exponential)
- / *
- + –

**Note**: brackets ( ) are used to override these rules.

**Algorithm:**

- Reverse the given infix expression. ( Note: do another reversal only for brackets).
- Do Infix to postfix expression and get the result.
- Reverse the result to get the final expression. (prefix expression) .

please click here to read about Infix expression to postfix expression.

Please see the walkthrough of an example below for more understanding.

**Complete Code:**

**Output**:

Infix Expression: A+B*(C^D-E) Prefix Expression: +A*B-^CDE