**Algebraic Expressions**

**Conversion from infix to postfix:***Procedure to convert from infix expression to postfix expression is as follows:*

*1. Scan the infix expression from left to right.*

*2. a) If the scanned symbol is left parenthesis, push it onto the stack.*

*b) If the scanned symbol is an operand, then place directly in the postfix expression (output).*

*OPERATOR PRECEDENCE VALUE*

*Exponentiation ($ or ↑ or ^) Highest 3*

**, / Next highest 2*

*+, - Lowest 1*

*c) If the symbol scanned is a right parenthesis, then go on popping all the items from the stack and place them in the postfix expression till we get the matching left parenthesis.*

*d) If the scanned symbol is an operator, then go on removing all the operators from the stack and place them in the postfix expression, if and only if the precedence of the operator which is on the top of the stack is greater than (or greater than or equal) to the precedence of the scanned operator and push the scanned operator onto the stack otherwise, push the scanned operator onto the stack.*

**Conversion from postfix to infix:***Procedure to convert postfix expression to infix expression is as follows:*

*1. Scan the postfix expression from left to right.*

*2. If the scanned symbol is an operand, then push it onto the stack.*

*3. If the scanned symbol is an operator, pop two symbols from the stack andcreate it as a string by placing the operator in between the operands and push it onto the stack.*

*4. Repeat steps 2 and 3 till the end of the expression.*

**Conversion from postfix to prefix:***Procedure to convert postfix expression to prefix expression is as follows:*

*1. Scan the postfix expression from left to right.*

*2. If the scanned symbol is an operand, then push it onto the stack.*

*3. If the scanned symbol is an operator, pop two symbols from the stack andcreate it as a string by placing the operator in front of the operands and push it onto the stack.*

*4. Repeat steps 2 and 3 till the end of the expression.*

**Conversion from prefix to infix:***Procedure to convert prefix expression to infix expression is as follows:*

*1. Scan the prefix expression from right to left (reverse order).*

*2. If the scanned symbol is an operand, then push it onto the stack.*

*3. If the scanned symbol is an operator, pop two symbols from the stack and create it as a string by placing the operator in between the operands and push it onto the stack.*

*4. Repeat steps 2 and 3 till the end of the expression.*

**Conversion from prefix to postfix:***Procedure to convert prefix expression to postfix expression is as follows:*

*1. Scan the prefix expression from right to left (reverse order).*

*2. If the scanned symbol is an operand, then push it onto the stack.*

*3. If the scanned symbol is an operator, pop two symbols from the stack and create it as a string by placing the operator after the operands and push it onto the stack.*

*4. Repeat steps 2 and 3 till the end of the expression.*

**Applications of stacks:***1. Stack is used by compilers to check for balancing of parentheses, brackets and braces.*

*2. Stack is used to evaluate a postfix expression.*

*3. Stack is used to convert an infix expression into postfix/prefix form.*

*4. In recursion, all intermediate arguments and return values are stored on the processor‟s stack.*

*5. During a function call the return address and arguments are pushed onto a stack and on return they are popped off.*

**Thanks**

**Mukesh Rajput**
## No comments:

## Post a Comment

Thanks

Mukesh Rajput