Data Structures & Algorithms: Lecture # 3
Data Structures & Algorithms: Lecture # 3
Lecture # 3
Today Topics
What are Stacks?
Representation of Stacks
Operations on Stacks
Push
Pop
Evaluation of Expressions
?
Pop Peek
Empty ?
Array implementation of Stacks
a a a
(2^3 + 6) * 2 – 9 / 3
= (8 + 6) * 2 – 9 / 3
= 14 * 2 – 9 / 3
= 28 – 3
= 25
Infix, Prefix (Polish) and Postfix
(Reverse Polish) Notation
Infix Prefix Postfix
(Polish Notation) (Reverse Polish
Notation)
A+B +AB AB+
Expression is scanned from left to right until the end of the expression
When end of the expression is reached, the top value from the stack is
picked. It is the computed value of the expression
Infix to Postfix Conversion
Stack is used to convert an infix expression to postfix.
A+B*C+(D*E+F)*G
Stack
Output: A
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: A
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: AB
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: AB
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
*
+
Stack
Output: ABC
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Output: ABC*+
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
(
+
Stack
Output: ABC*+
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
(
+
Stack
Output: ABC*+D
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: ABC*+D
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
*
(
+
Stack
Output: ABC*+DE
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: AB*+DE*
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
+
(
+
Stack
Output: ABC*+DE*F
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: ABC*+DE*F+
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
*
+
Stack
Output: ABC*+DE*F+G
Example (Infix to Postfix
Conversion)
A+B*C+(D*E+F)*G
Stack
Output: ABC*+DE*F+G*+
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
Postfix Expression
ABC*+DE*F+G*+
Stack
Example (Evaluation of Expression)
A+B*C+(D*E+F)*G
= 5 + 6 * 9 + (2 * 4 + 8) * 3
= 5 + 54 + (8 + 8) * 3
= 59 + 16 * 3
= 59 + 48
=107
Next Lecture
What are Queues?
Representation of Queues
Operations on Queues
QInsert
QDelete
References