240 likes | 702 Views
This tool enables converting infix expressions to postfix using a step-by-step process. Tokens from the infix expression vector are processed, operators and parentheses are handled, and the resulting postfix expression is generated.
E N D
Infix to postfix conversion Process the tokens from a vector infixVect of tokens (strings) of an infix expression one by one When the token is an operand • Add it to the end of the vector postfixVect of token (strings) that is used to store the corresponding postfix expression When the token is a left or right parenthesis or an operator • If the token x is “(“ • Push the token x onto the stack • if the token x is “)” • Repeatedly pop a token y from the stack and push_back that token y to postfixVect until “(“ is encountered in the end of the stack. Pop “(“ from the stack. • If the stack is already empty before finding a “(“, this expression is not a valid infix expression. • if the token x is a regular operator • Step 1: Check the token y currently on the top of the stack. • Step 2: If(i) the stack is not empty, (ii) y is not “(“ and(iii) y is an operator of higher or equal precedence than that of x, • then: pop the token y from the stack and push_back the token y to postfixVect, and repeat Step 1 again • else: push the token x onto the stack. When all tokens in infixVect are processed as described above, repeatedly pop a token y from the stack and push_back that token y to postfixVect until the stack is empty.
Infix to postfix conversion infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 + (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 2 + (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 2 + - (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 2 + 3 - (
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4 – ( 5 + 6 ) postfixVect 1 2 + 3 -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 )*4 – ( 5 + 6 ) postfixVect 1 2 + 3 - *
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) * 4– ( 5 + 6 ) postfixVect 1 2 + 3 - 4 *
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4 –( 5 + 6 ) postfixVect 1 2 + 3 – 4 * -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5 + 6 ) postfixVect 1 2 + 3 – 4 * ( -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5 + 6 ) postfixVect 1 2 + 3 – 4 * 5 ( -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5 +6 ) postfixVect 1 2 + 3 – 4 * 5 + ( -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5+6) postfixVect 1 2 + 3 – 4 * 5 6 + ( -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5+6 ) postfixVect 1 2 + 3 – 4 * 5 6 + -
Infix to postfix conversion stack infixVect ( 1 + 2 – 3 ) *4– (5+6 ) postfixVect 1 2 + 3 – 4 * 5 6 + –