PRESENTATION
OF
DATA STRUCTURE & ALGORITHM
BY

Mohammad Saeed Farooqi
 INFIX Notation.
 POSTFIX Notation.
 PREFIX Notation.
 OPERATORS PRECEDENCE.
 Evaluating Of POSTFIX Expression Using Stacks.
 Converting INFIX To POSTFIX Using Stacks.
 ALGORITHMS.



OUTLINES

Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 Infix Expression Are Those In Which Operators Are
Written Between Two Operands.
 Infix Expression Is The Common Arithmetic And
Logical Formula Expression.
 Infix Expression Needs Extra Information To Make The
Order Of Evaluation Of The Operators Clear.
 Rules Built Into The Language About Operator
Precedence And Associativity, And Brackets ( ) To Allow
Users To Override These Rules.

 INFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 EXAMPLE…
 A * ( B + C ) / D…
 This Expression Is Usually Taken To Mean Something
Like: "First Add B And C Together, Then Multiply The
Result By A, Then Divide By D To Give The Final
Answer.

 INFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 POSTFIX Expression Also Known As “Reverse Polish
Expression”
 In These Expressions Operators Are Written After Their
Operands.
 Operators Act On Values Immediately To The Left Of
Them.
 They Do Not Have (Brackets)

 POSTFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 EXAMPLE…
 A B C + * D /…
 Operators Act On Values Immediately To The Left Of
Them.
 For Example, The "+" Above Uses The "B" And "C".
 We Can Add (Totally Unnecessary) Brackets To Make
This Easy.
( (A (B C +) *) D /) .

 POSTFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 Also Known As “Polish Expression”.
 In These Expressions Operators Are Written Before The
Operands.
 We Have To Scan It From Right-To-Left.
 As For Postfix, Operators Are Evaluated Left-To-Right And
Brackets Are Superfluous.
 Operators Act On The Two Nearest Values On The Right.
 I Have Again Added (Totally Unnecessary) Brackets To Make
This Clear.
(/ (* A (+ B C) ) D)
 PREFIX Notation Is Especially Popular With StackBased Operations Due To Its Innate Ability To Easily
Distinguish Order Of Operations Without The Need For
Parentheses.

 PREFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 We Assume The Following Three Levels Of
PRECEDENCE For The Usual Five Binary Operations.
 Highest
Exponentiation ().
 Next Highest Multiplication (*) And Division (/)
Superfluous
 Lowest
Addition (+) And Subtraction (-)
 Without Understanding Operator Precedence You Can
Not Convert Any Expression.

 OPERATOR PRECEDENCE
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
 EVOLUACTION OF POSTFIX EXPRESSION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
• EvaluatePostfix(exp)
• {
• Create A Stack S.
• for I ← 0 to length of the (exp)-1
{
if(exp[i]) // Is An Operand
push(exp[i]);
else if(exp[i])
// Is An Operator
{
op1←pop();
op2← pop();
result←perform(exp[i],op1,op2);
push(result);
}
}
}

 ALGORITHM FOR POSTFIX EVALUATION
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
Converting Infix To Postfix
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
•
•
•
•
•
•
•

Example: 1*2+3.
Scan: *,+ (Stack) And 12 (Postfix Expression).
Precedence Of * Is Higher Than +.
Thus, Append * to postfix Expression.
+ (Stack) And 12* (Postfix Expression ).
Scan Further, + (Stack ) and 12*3 (Postfix Expression)
There Are No Further Operators, Thus, Postfix Is 12*3+

Converting Infix To Postfix
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
Converting Infix To Prefix
Mohammad Saeed Farooqi (University Of Swat, Pakistan)
• Step 1. Push “)” onto STACK, and add “(“ to end of the A.
• Step 2. Scan A from right to left and repeat step 3 to 6 for each element of A
until the STACK is empty.
• Step 3. If an operand is encountered add it to B.
• Step 4. If a right parenthesis is encountered push it onto STACK.
• Step 5. If an operator is encountered then: a. Repeatedly pop from STACK
and add to B each operator (on the top of STACK) which has same or higher
precedence than the operator. b. Add operator to STACK.
• Step 6. If left parenthesis is encontered then a. Repeatedly pop from the
STACK and add to B (each operator on top of stack until a left parenthesis is
encounterd) b. Remove the left parenthesis.
• Step 7. Exit

Converting Infix To Postfix
Mohammad Saeed Farooqi (University Of Swat, Pakistan)

Infix to postfix

  • 1.
    PRESENTATION OF DATA STRUCTURE &ALGORITHM BY Mohammad Saeed Farooqi
  • 2.
     INFIX Notation. POSTFIX Notation.  PREFIX Notation.  OPERATORS PRECEDENCE.  Evaluating Of POSTFIX Expression Using Stacks.  Converting INFIX To POSTFIX Using Stacks.  ALGORITHMS.  OUTLINES Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 3.
     Infix ExpressionAre Those In Which Operators Are Written Between Two Operands.  Infix Expression Is The Common Arithmetic And Logical Formula Expression.  Infix Expression Needs Extra Information To Make The Order Of Evaluation Of The Operators Clear.  Rules Built Into The Language About Operator Precedence And Associativity, And Brackets ( ) To Allow Users To Override These Rules.  INFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 4.
     EXAMPLE…  A* ( B + C ) / D…  This Expression Is Usually Taken To Mean Something Like: "First Add B And C Together, Then Multiply The Result By A, Then Divide By D To Give The Final Answer.  INFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 5.
     POSTFIX ExpressionAlso Known As “Reverse Polish Expression”  In These Expressions Operators Are Written After Their Operands.  Operators Act On Values Immediately To The Left Of Them.  They Do Not Have (Brackets)  POSTFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 6.
     EXAMPLE…  AB C + * D /…  Operators Act On Values Immediately To The Left Of Them.  For Example, The "+" Above Uses The "B" And "C".  We Can Add (Totally Unnecessary) Brackets To Make This Easy. ( (A (B C +) *) D /) .  POSTFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 7.
     Also KnownAs “Polish Expression”.  In These Expressions Operators Are Written Before The Operands.  We Have To Scan It From Right-To-Left.  As For Postfix, Operators Are Evaluated Left-To-Right And Brackets Are Superfluous.  Operators Act On The Two Nearest Values On The Right.  I Have Again Added (Totally Unnecessary) Brackets To Make This Clear. (/ (* A (+ B C) ) D)  PREFIX Notation Is Especially Popular With StackBased Operations Due To Its Innate Ability To Easily Distinguish Order Of Operations Without The Need For Parentheses.  PREFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 8.
     We AssumeThe Following Three Levels Of PRECEDENCE For The Usual Five Binary Operations.  Highest Exponentiation ().  Next Highest Multiplication (*) And Division (/) Superfluous  Lowest Addition (+) And Subtraction (-)  Without Understanding Operator Precedence You Can Not Convert Any Expression.  OPERATOR PRECEDENCE Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 9.
     EVOLUACTION OFPOSTFIX EXPRESSION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 10.
    • EvaluatePostfix(exp) • { •Create A Stack S. • for I ← 0 to length of the (exp)-1 { if(exp[i]) // Is An Operand push(exp[i]); else if(exp[i]) // Is An Operator { op1←pop(); op2← pop(); result←perform(exp[i],op1,op2); push(result); } } }  ALGORITHM FOR POSTFIX EVALUATION Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 11.
    Converting Infix ToPostfix Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 12.
    • • • • • • • Example: 1*2+3. Scan: *,+(Stack) And 12 (Postfix Expression). Precedence Of * Is Higher Than +. Thus, Append * to postfix Expression. + (Stack) And 12* (Postfix Expression ). Scan Further, + (Stack ) and 12*3 (Postfix Expression) There Are No Further Operators, Thus, Postfix Is 12*3+ Converting Infix To Postfix Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 13.
    Converting Infix ToPrefix Mohammad Saeed Farooqi (University Of Swat, Pakistan)
  • 14.
    • Step 1.Push “)” onto STACK, and add “(“ to end of the A. • Step 2. Scan A from right to left and repeat step 3 to 6 for each element of A until the STACK is empty. • Step 3. If an operand is encountered add it to B. • Step 4. If a right parenthesis is encountered push it onto STACK. • Step 5. If an operator is encountered then: a. Repeatedly pop from STACK and add to B each operator (on the top of STACK) which has same or higher precedence than the operator. b. Add operator to STACK. • Step 6. If left parenthesis is encontered then a. Repeatedly pop from the STACK and add to B (each operator on top of stack until a left parenthesis is encounterd) b. Remove the left parenthesis. • Step 7. Exit Converting Infix To Postfix Mohammad Saeed Farooqi (University Of Swat, Pakistan)