Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Stack Data Structure V1.0

5,708

Published on

Penjelasan mengenai stack/tumpukan

Penjelasan mengenai stack/tumpukan

1 Comment
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Notations Should have more solved examples any how good attempt

Are you sure you want to  Yes  No
Views
Total Views
5,708
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
317
1
Likes
1
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. Stack Data Structure By : Imam M Shofi
• 2. What is stack?
• A stack is a limited version of an array.
• New elements, or nodes as they are often called, can be added to a stack and removed from a stack only from one end.
• Access system a stack is referred to as a LIFO structure (Last-In First-Out)
• Some illustrations:
stack of satay stack of CDs
• 3. Stacks operations
• Push : adds a new node
• Push(X,S)  add the value X to the TOP of stack
• Pop : removes a node
• Pop(S)  removes the TOP node and returns its value
• IsEmpty : reports whether the stack is empty
• IsEmpty(S)  report whether the stack S is empty
• IsFull : reports whether the stack is full
• IsFull(S)  report whether the stack S is full
• Initialize : creates/initializes the stack
• Initialize(S)  create a new empty stack named S
• Destroy : deletes the contents of the stack (may be implemented by re-initializing the stack)
• Destroy(S)  deletes the contents of the stack S
• 4. Illustration/example
• Operation
Stack’s contents TOP value 1. Initialiaze(S) <empty> 0 2. Push(‘a’,S) a 1 3. Push(‘b’,S) a b 2 4. Push(‘c’,S) a b c 3 5. Pop(S) a b 2 6. Push(‘d’,S) a b d 3 7. Push(‘e’,S) a b d e 4 8. Pop(S) a b d 3 9. Pop(S) a b 2 10. Pop(S) a 1
• 5. Exercise
• What would the state of the stack be after the following operations:
• create stack
• push A onto stack
• push F onto stack
• pop item from stack
• push B onto stack
• pop item from stack
• pop item from stack
• Show the state of the stack and the value of each variable after execution of each of the following statements:
• A = 5 B = 3 C = 7
(a) create stack push A onto stack push C*C onto stack pop item from stack and store in B push B+A onto stack pop item from stack and store in A pop item from stack and store in B (b) create stack push B onto stack push C onto stack push A onto stack A=B*C push A+C onto stack pop item from stack and store in A pop item from stack and store in B pop item from stack and store in C
• 6. Converting between notations
• INFIX to PREFIX : (A+B) – (C*D)
• Do the first brace: (A+B), the PREFIX is +AB
• Do the second brace: (C*D), the PREFIX is *CD
• The end is operator -: +AB - *CD ,
• the PREFIX is -+AB*CD
• INFIX to POSTFIX : (A+B) – (C*D)
• Do the first brace: (A+B), the POSTFIX is AB+
• Do the second brace: (C*D), the POSTFIX is CD*
• The end is operator -: AB+ - CD* ,
• the PREFIX is AB+CD*-
• PREFIX to INFIX : +/*A B C D
• Find the first operator: *, take 2 operands before the operator ( A and B ), the INFIX is (A*B)
• Find the second operator: /, take 2 operands before the operator ( A*B and C ), the INFIX is ((A*B)/C)
• Find the third operator: +, take 2 operands before the operator ( ((A*B)/C) and D ), the INFIX is ((A*B)/C)+D
• 7. Converting between notations(2)
• PREFIX to POSTFIX : +/*A B C D
• Find the first operator: *, take 2 operands before the operator ( A and B ), the POSTFIX is AB*
• Find the second operator: /, take 2 operands before the operator ( AB* and C ), the POSTFIX is AB*C/
• Find the third operator: +, take 2 operands before the operator ( AB*C/ and D ), the POSTFIX is AB*C/D+
• POSTFIX to INFIX : ABCD*/-
• Find the first operator: *, take 2 operands before the operator ( C and D ), the INFIX is (C*D)
• Find the second operator: /, take 2 operands before the operator ( (C*D) and B ), the INFIX is (B/(C*D)
• Find the third operator: -, take 2 operands before the operator ( (B/(C*D) and A ), the INFIX is A – (B/(C*D)
• POSTFIX to PREFIX : ABCD*/-
• Find the first operator: *, take 2 operands before the operator ( C and D ), the PREFIX is *CD
• Find the second operator: /, take 2 operands before the operator ( *CD and B ), the PREFIX is /B*CD
• Find the third operator: -, take 2 operands before the operator ( /B*CD and A ), the PREFIX is -A /B*CD
• 8. Exercise: Converting
• Convert these INFIX to PREFIX and POSTFIX :
• A / B – C / D
• (A + B) ^ 3 – C * D
• A ^ (B + C)
• Convert these PREFIX to INFIX and POSTFIX :
• + – / A B C ^ D E
• – + D E / X Y
• ^ + 2 3 – C D
• Convert these POSTFIX to INFIX and PREFIX :
• A B C + –
• G H + I J / *
• A B ^ C D + –