1 / 20

Infix to postfix conversion

Infix to postfix conversion. Use a loop to read the tokens one by one from a vector infixVect of tokens (strings) representing an infix expression. For each token do the following in the loop: When the token is an operand

manning
Download Presentation

Infix to postfix conversion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Infix to postfix conversion Use a loop to read the tokens one by one from a vector infixVect of tokens (strings) representing an infix expression. For each token do the following in the loop: • 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 parenthesis “(” • Push_back the token x to the end of the vector stackVect of token (strings) that simulates a stack. • When the token is a right parenthesis “)” • Repeatedly pop_back a token y from stackVect and push_back that token y to postfixVect until “(“ is encountered in stackVect. Then pop_back “(“ from stackVect. • If stackVect is already empty before finding a “(“, that expression is not a valid expression. • When the token is an operator, see next slide.

  2. Infix to postfix conversion • When the token x is an operator • Write a loop that checks the following three conditions: • The stack stackVect is not empty • The token y currently in the end of stackVect is an operator. In other words, it is not not a lef parenthesis “(“ . • y is an operator of higer or equal precedence than that of x, • As long as the three conditions above are all true, in the loop above do the following in the body of the loop : • push_back the token y to postfixVect • pop_back the token y from stackVect • The loop above will stops as soon as any of the three conditions is not true. • After the loop, push_back the token x into stackVect.

  3. Infix to postfix conversion After the loop in slide 1 has processes all the tokens in infixVect and stop, use another loop to repeatedly do the following as long as the stack vector stackVect is not empty yet: • push_back the token on the top of the stack vector stackVect into postfixVect. • pop_back the stack vector to remove the top token y the stack.

  4. Infix to postfix conversion infixVect ( a + b - c ) * d – ( e + f ) postfixVect

  5. Infix to postfix conversion stackVect infixVect a + b - c ) * d – ( e + f ) postfixVect (

  6. Infix to postfix conversion stackVect infixVect + b - c ) * d – ( e + f ) postfixVect a (

  7. Infix to postfix conversion stackVect infixVect b - c ) * d – ( e + f ) postfixVect a + (

  8. Infix to postfix conversion stackVect infixVect - c ) * d – ( e + f ) postfixVect a b + (

  9. Infix to postfix conversion stackVect infixVect c ) * d – ( e + f ) postfixVect a b + - (

  10. Infix to postfix conversion stackVect infixVect ) * d – ( e + f ) postfixVect a b + c - (

  11. Infix to postfix conversion stackVect infixVect * d – ( e + f ) postfixVect a b + c -

  12. Infix to postfix conversion stackVect infixVect d – ( e + f ) postfixVect a b + c - *

  13. Infix to postfix conversion stackVect infixVect – ( e + f ) postfixVect a b + c - d *

  14. Infix to postfix conversion stackVect infixVect ( e + f ) postfixVect a b + c – d * -

  15. Infix to postfix conversion stackVect infixVect e + f ) postfixVect a b + c – d * ( -

  16. Infix to postfix conversion stackVect infixVect + f ) postfixVect a b + c – d * e ( -

  17. Infix to postfix conversion stackVect infixVect f ) postfixVect a b + c – d * e + ( -

  18. Infix to postfix conversion stackVect infixVect ) postfixVect a b + c – d * e f + ( -

  19. Infix to postfix conversion stackVect infixVect postfixVect a b + c – d * e f + -

  20. Infix to postfix conversion stackVect infixVect postfixVect a b + c – d * e f + -

More Related