The document describes algorithms for converting infix notation to postfix and prefix notation, and algorithms for evaluating postfix and prefix expressions by converting them to infix notation. It provides step-by-step instructions for converting an infix expression to postfix and prefix notation by scanning the expression and pushing or popping operators and operands onto a stack. It also provides algorithms for evaluating postfix and prefix expressions by scanning the notation, pushing operands to a stack, and popping operands and operators to build an infix expression for evaluation.
The document describes algorithms for converting infix notation to postfix and prefix notation, and algorithms for evaluating postfix and prefix expressions by converting them to infix notation. It provides step-by-step instructions for converting an infix expression to postfix and prefix notation by scanning the expression and pushing or popping operators and operands onto a stack. It also provides algorithms for evaluating postfix and prefix expressions by scanning the notation, pushing operands to a stack, and popping operands and operators to build an infix expression for evaluation.
The document describes algorithms for converting infix notation to postfix and prefix notation, and algorithms for evaluating postfix and prefix expressions by converting them to infix notation. It provides step-by-step instructions for converting an infix expression to postfix and prefix notation by scanning the expression and pushing or popping operators and operands onto a stack. It also provides algorithms for evaluating postfix and prefix expressions by scanning the notation, pushing operands to a stack, and popping operands and operators to build an infix expression for evaluation.
Let A be infix expression, and B be an empty string which will hold the converted postfix expression 1. Push “(” onto STACK, and add “)” to end of the A 2. Scan A from left to right and repeat step 3 to 6 for each element of A 3. If an operand is encountered add it to B 4. If an “(“ is encountered push it onto the stack 5. If an operator 'op' is encountered then: a) Repeatedly pop from STACK and add to B each operator (on the top of STACK) which has higher or equal precedence than the operator 'op'. b) Add operator ‘op’ to STACK 6. If a right parenthesis is encountered then a) Repeatedly pop from the STACK and add to B each operator from top of stack until a left parenthesis is encountered b) Remove the left parenthesis 7. Stop • Example (A+B^C)*D+E^5 Infix to Prefix Algorithm Let A be infix expression, and B be an empty string which will hold the converted prefix expression 1. Push “)” onto STACK, and add “(” to start of the A 2. Scan A from right to left and repeat step 3 to 6 for each element of A 3. If an operand is encountered add it to B 4. If a right parenthesis is encountered push it onto STACK 5. If an operator 'op' is encountered then: a) Repeatedly pop from STACK and add to B each operator (on the top of STACK) which has higher precedence than the operator 'op'. b) Add operator ‘op’ to STACK 6. If a left parenthesis is encountered then a) Repeatedly pop from the STACK and add to B each operator from top of stack until a right parenthesis is encountered b) Remove the right parenthesis 7. Reverse B 8. Stop Evaluation of Postfix Expressions (Postfix to Infix)
Let A be Postfix expression, and S be an empty stack
1. Scan A from left to right and repeat step 2 to 3 for each element of A 2. If an operand is encountered push it in S 3. If an operator 'op' is encountered then: a) Opnd1 = pop() b) Opnd2 = pop() c) Push ( opnd2 ‘op’ opnd1 ) in S 4. Pop and print/use the entity in S 5. Stop Evaluation of Prefix Expressions (Prefix to Infix)
Let A be Prefix expression, and S be an empty stack
1. Scan A from right to left and repeat step 2 to 3 for each element of A 2. If an operand is encountered push it in S 3. If an operator 'op' is encountered then: a) Opnd1 = pop() b) Opnd2 = pop() c) Push ( opnd1 ‘op’ opnd2 ) in S 4. Pop and print/use the entity in S 5. Stop End
Ten-Decimal Tables of the Logarithms of Complex Numbers and for the Transformation from Cartesian to Polar Coordinates: Volume 33 in Mathematical Tables Series