This post is about conversion of Infix expression to Prefix conversion. For this conversion we take help of stack data structure, we need to push and pop the operators in and out of the stack.
Infix expressions are the expressions that we normally use,eg. 5+6-7; a+b*c etc. Prefix expressions are the expressions in which the 2 operands are preceded by the operator eg. -+567 , +a*bc etc.
This method is very similar to the method that we used to convert Infix to Postfix but the only difference is that here we need to reverse the input string before conversion and then reverse the final output string before displaying it.
NOTE: This changes one thing that is instead of encountering the opening bracket we now first encounter the closing bracket and we make changes accordingly in our code.
So, to convert an infix expression to a prefix expression we follow the below steps
(we have 2 string, 1st is the input infix expression string 2nd is the output string which is empty initially)
You might also be interested in
Infix to Postfix Conversion
Insertion Sort
Selection sort
Shell Sort
Hashing with Linear Probing
Hashing with Quadratic Probing
Double Hashing
4 methods to swap 2 numbers
Infix expressions are the expressions that we normally use,eg. 5+6-7; a+b*c etc. Prefix expressions are the expressions in which the 2 operands are preceded by the operator eg. -+567 , +a*bc etc.
This method is very similar to the method that we used to convert Infix to Postfix but the only difference is that here we need to reverse the input string before conversion and then reverse the final output string before displaying it.
NOTE: This changes one thing that is instead of encountering the opening bracket we now first encounter the closing bracket and we make changes accordingly in our code.
So, to convert an infix expression to a prefix expression we follow the below steps
(we have 2 string, 1st is the input infix expression string 2nd is the output string which is empty initially)
- We first reverse the input infix expression.
- We then start by going through the characters of the infix expression one by one.
- If we come across an operand we simply copy it to the Prefix output string.
- If we come across any closing parenthesis we push it on the stack.
- If we come across any opening parenthesis we pop the stack till we find the corresponding closing parenthesis.
- If we come across an operator then we have 2 cases based on the precedence of the operators
- If the current operator has precedence higher than or equal to the stack top then we push the current operator on the stack.
- If the current operator has precedence less than the stack top then we pop the operator at the top and put it to the output string and then check the above condition again with the new stack top.
- Finally, we reverse the prefix output string.
C Program
C++ Program
Sample input and output to check the program
You might also be interested in
Infix to Postfix Conversion
Insertion Sort
Selection sort
Shell Sort
Hashing with Linear Probing
Hashing with Quadratic Probing
Double Hashing
4 methods to swap 2 numbers
Comments
Post a Comment