Postfix Notation

Only available on StudyMode
  • Topic: Reverse Polish notation, Infix notation, Mathematical notation
  • Pages : 4 (779 words )
  • Download(s) : 40
  • Published : April 23, 2013
Open Document
Text Preview
POSTFIX NOTATION
Postfix also known as Reverse Polish Notation (or RPN), is a notational system where the operation/function follows the arguments. For example, "1 2 add" would be postfix notation for adding the numbers 1 and 2. Most programming languages use either prefix notation ("add(1, 2)" or "(add 1 2)") or infix notation ("1 add 2" or "1 + 2"). Prefix and infix are more familiar to most people, as they are the standard notations used for arithmetic and algebra. Why then should we use postfix notation when in actual fact it seems difficult to understand? Postfix is useful, especially for programming, because it clearly shows the order in which operations are performed, and because it disambiguates operator groupings. For example, the following postfix expression:1 2 + 3 * 6 + 2 3 + / means "take 1 and 2, add them, take 3 and multiply, take 6 and add, take 2 and 3, add them, and divide". In contrast, the equivalent expression in Infix Notation is: (((1 + 2) * 3) + 6) / (2 + 3)

This may seem more familiar, but note the need for parentheses to control the order of evaluation. The prefix notation would be: (/ (+ (* (+ 1 2) 3) 6) (+ 2 3)) which can be read "inside-out" to evaluate the expression.

In postfix notation which is also called Reverse Polish Notation (RPN) the operator follows the two operands, for example Infixpostfix
A+B =A B+
A*(B+C) =ABC+*
A*B/C =AB*C/

TRANSLATE INFIX TO POSTFIX
oAs before, you read the infix from left to right looking at each character in return oAs you go along you copy these operands and operators to the postfix output string the trick knowing when to copy what oIf the character in the infix string is an operand you copy it immediately to the postfix string. Knowing when to copy an operator is more complicated but is the same as the rule to evaluating infix expression.

Translating A+B*(C-D) to postfix

Character read from infix ExpressionInfix Expression parsed so farPostfix expression...
tracking img