Your SlideShare is downloading. ×
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Stack Data Structure V1.0
Upcoming SlideShare
Loading in...5
×

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.
Text the download link to your phone
Standard text messaging rates apply

Stack Data Structure V1.0

5,708

Published on

Penjelasan mengenai stack/tumpukan

Penjelasan mengenai stack/tumpukan

Published in: Technology, Business
1 Comment
1 Like
Statistics
Notes
  • Notations Should have more solved examples any how good attempt
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,708
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
317
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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 + –

×