Joseph Lindo Abstract Data Types Sir Joseph Lindo University of the Cordilleras.
-
Upload
isaiah-sweeney -
Category
Documents
-
view
217 -
download
2
Transcript of Joseph Lindo Abstract Data Types Sir Joseph Lindo University of the Cordilleras.
Joseph Lindo
AbstractDataTypesSir Joseph Lindo
University of the Cordilleras
Joseph Lindo
ADT
Abstract Data Types
StackAll insertions and deletions are made at one end
top of the stackLast In First Out (LIFO)Some analogiesStack of trays Books in a table
List
Stack
Queue
Case
Array
Stack
Joseph Lindo
ADT
Abstract Data Types
Stack ApplicationArithmetic Expression
INFIXPREFIXPOSTFIX
List
Stack
Queue
Case
Array
Stack
Joseph Lindo
AbstractDataTypes
-- end --Sir Joseph Lindo
University of the Cordilleras
Joseph Lindo
AbstractDataTypes-- end na --Sir Joseph Lindo
University of the Cordilleras
Joseph Lindo
Stack in real life
Online Activity
• Think of real life activities, scenarios or things that applies the concept stack.
• Post answer as comment on our facebook group, in your specified block (F,D and G)
• You are not allowed to have the same answer
Joseph Lindo
Major Operations
Stack
• PUSH (Object)- add object into the top of the stack
• POP- remove object into the top of the stack
• Others- isEmpty- isFull- PEEK
Joseph Lindo
INFIX Notation
Stack
To add A, B, we writeA+B
To multiply A, B, we writeA*B
The operators ('+' and '*') go in between the operands ('A' and 'B')
Joseph Lindo
PREFIX Notation
Stack
Instead of saying "A plus B", we could say "add A,B " and write
+ A B
"Multiply A,B" would be written* A B
Joseph Lindo
POSTFIX Notation
Stack
Another alternative is to put the operators after the operands as in
A B +and
A B *
Joseph Lindo
Notations
Stack
The terms infix, prefix, and postfix tell us whether the operators go between, before, or after the operands.
Pre A In B Post
Joseph Lindo
Notations
Stack
Parenthesis
Evaluate 2+3*5.+ First:
(2+3)*5 = 5*5 = 25* First:
2+(3*5) = 2+15 = 17
INFIX notation requires Parentheses.
Joseph Lindo
Notations
Stack
What about PREFIX? + 2 * 3 5 =
= + 2 * 3 5 = + 2 15 = 17
* + 2 3 5 = = * + 2 3 5 = * 5 5 = 25
No parentheses needed!
Joseph Lindo
Notations
Stack
What about POSTFIX?
2 3 5 * + = = 2 3 5 * + = 2 15 + = 17
2 3 + 5 * = = 2 3 + 5 * = 5 5 * = 25
No parentheses needed here either!
Joseph Lindo
Notations
Stack
Conc lusion
Infix is the only notation that requires parentheses in order to change the order in which the operations are done.
Joseph Lindo
FPE
Stack
A FPE has exactly one set of Parentheses enclosing each operator and its operands.
Which is fully parenthesized?( A + B ) * C
( ( A + B) * C ) ( ( A + B) * ( C ) )
Joseph Lindo
INFIX to PREFIX
Stack
Move each operator to the left of its operands & remove the parentheses:
( ( A + B) * ( C + D ) )( + A B * ( C + D ) )
* + A B ( C + D )* + A B + C D
Order of operands does not change!
Joseph Lindo
INFIX to PREFIX
Stack
Practice:
1.( ( A + ( B – D ) ) * C)
2.( ( ( C * B ) / ( E + B) )/ F )
Joseph Lindo
INFIX to POSTFIX
Stack
Move each operator to the left of its operands & remove the parentheses:
( ( A + B) * ( C + D ) )( A B + * ( C + D ) )
A B + (C + D ) *A B + C D + *
Order of operands does not change!
Joseph Lindo
INFIX to PREFIX
Stack
Practice:
1.( ( A + ( B – D ) ) * C)
2.( ( ( C * B ) / ( E + B) )/ F )
Joseph Lindo
AbstractDataTypes
-- end --Sir Joseph Lindo
University of the Cordilleras
Joseph Lindo
AbstractDataTypes-- end na --Sir Joseph Lindo
University of the Cordilleras
Joseph Lindo
Comprehension Check