Convert Infix to Postfix Notation
Initially we’ve a string S which represent the expression in infix format. Now we need a character stack.
*We’ll iterate through the string S, from left to right.
Whenever we encounter an operand we’ll print it.
If we encounter an ‘(‘ we’ll push it to the stack.
If we encounter an ‘)’ we’ll take the following actions:
- We’ll continue to pop top of the stack until we find the ’(‘
- Before we pop top of the stack, we’ll print every character of top of the stack except ‘)’.
If we encounter an operator, we’ll take the following actions:
- We’ll continue to pop top of the stack until we find that S[ i ] is greater than the top of the Stack (by the rules of precedence) Ex: if we found an Multiplication operator on S [ i ] We’ll continue searching for addition or subtraction operator on top of the stack. We’ll stop searching until it’s empty or we’ve found one. Before that we’ll pop top of the Stack. And before pop, we’ll print every operators.
When the traversal will finished, we’ll continue to pop top of the stack until it's empty, and before pop we’ll print every operators.
You can see my Code
Convert Infix to Prefix Notation
To convert an infix to Prefix, first we’ve to know how to convert Infix to postfix notation.
Initially we’ve a string S which represent the expression in infix format.
Reverse the string S. After reversing A+B*C will become C*B+A. Note while reversing each ‘(‘ will become ‘)’ and each ‘)’ becomes ‘(‘.
Obtain the postfix expression of the modified string S. We’ve to handle the ‘(‘ as ‘)’ and ‘)’ as ‘(‘
Just reverse the postfix expression we’ve.
You can see my Code
If you want to know in details about Infix, Postfix and Prefix This Link maybe help you.
Here are some basic practice problems: WhatFix Notation Equation Convert the Expression
Thank you for reading. If there anything else, please let me know.