I have come across one
very interesting query about

**Postfix to Infix**conversion.
Let’s understand first the importance
of having Postfix notation:-

·
To
reduce computer memory access.

The automatic stack permits the automatic storage of intermediate results for use later: this keyfeature is what permits RPN calculators to easily evaluate expressions of arbitrary complexity: they

do not have limits on the complexity of expression they can evaluate.

·
To
utilize the stack to evaluate expressions.

·
To reduce the complexity of expression while evaluation.

·
Postfix notation is often used in stack-based and concatenative programming languages.

Postfix to Infix Algorithm
Let’s look out for
the algorithm for converting postfix to infix expression:-
§ While
there are input symbol left
§ Read
the next symbol from input.
§ If
the symbol is an operand (i.e. value)
§ Push
it onto the stack.
§ Otherwise,
the symbol is an operator.
§ If
there are fewer than
2 values on the stack
§
(Error) The user has not input sufficient values in the
expression.
§ Else,
Pop the top
2 values from the stack (operand1 & operand 2).
§ Put
the operator, with the values as arguments and form a string (like : operand1
operator operand2).
§ Encapsulate
the resulted string with parenthesis. (like: (a+b) if operand1 =’a’, operand2 =’b’, operator =
‘+’ )
§ Push
the resulted string back to stack.
§ If
there is only one value in the stack
§ That value in the stack is the desired
infix string.
§ If
there are more values in the stack
§
(Error) The user input has too many values. |

Postfix to infix will not give you exact expression in terms of parenthesis, though it will give you same result on evaluation.

e.g. (a+b+c)*2

Postfix will be :- ab+c+2*

And postfix to infix will give :- (((a+b)+c)*2)

## 0 comments:

## Post a Comment