Skip to content

Latest commit

Β 

History

History
48 lines (33 loc) Β· 1.52 KB

File metadata and controls

48 lines (33 loc) Β· 1.52 KB

Stack

Stack(μŠ€νƒ)μ΄λž€?


μŠ€νƒμ€ ν•œμͺ½ λμ—μ„œλ§Œ 데이터λ₯Ό λ„£κ³  λΊ„ 수 μžˆλŠ” μ œν•œμ μœΌλ‘œ μ ‘κ·Όν•  수 μžˆλŠ” 
ν›„μž…μ„ μΆœ(Last-In-First-Out) ν˜•νƒœμ˜ μ„ ν˜• μžλ£Œκ΅¬μ‘°μ΄λ‹€.

ν›„μž…μ„ μΆœ(LIFO)

κ°€μž₯ μ΅œκ·Όμ— λ“€μ–΄μ˜¨ 데이터가 κ°€μž₯ λ¨Όμ € λ‚˜κ°„λ‹€λŠ” 의미

stack


μŠ€νƒμ—μ„œ λ°œμƒν•˜λŠ” 였λ₯˜

  • λΉ„μ–΄μžˆλŠ” μŠ€νƒμ—μ„œ 데이터λ₯Ό κΊΌλ‚΄λ € ν• λ•Œ (μŠ€νƒ μ–Έλ”ν”Œλ‘œμš°: Stack Underflow)
  • 꽉찬 μŠ€νƒμ— 데이터λ₯Ό λ„£μœΌλ € ν•  λ•Œ (μŠ€νƒ μ˜€λ²„ν”Œλ‘œμš°: Stack Overflow)

Stack(μŠ€νƒ)의 μ—°μ‚°

  • push(x): μŠ€νƒμ— 데이터 xλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.
  • pop(): μŠ€νƒμ˜ 맨 μœ„μ˜ 데이터 μ›μ†Œλ₯Ό μ œκ±°ν•˜λ©°, λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • size(): ν˜„μž¬ μŠ€νƒμ— λ“€μ–΄ μžˆλŠ” 데이터 μ›μ†Œ 개수λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • isEmpty(): ν˜„μž¬ μŠ€νƒμ΄ λΉ„μ–΄ μžˆλŠ”μ§€λ₯Ό νŒλ‹¨ν•©λ‹ˆλ‹€.
    • λΉ„μ–΄μžˆμœΌλ©΄ Trueλ₯Ό λΉ„μ–΄μžˆμ§€ μ•ŠμœΌλ©΄ Falseλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • peek(): μŠ€νƒμ˜ λ§¨μœ„μ˜ 데이터 μ›μ†Œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.



λ°°μ—΄μ˜ μ‹œκ°„ λ³΅μž‘λ„(Time complexity)

Operation average case worst case
Access Θ(n) Θ(n)
Search Θ(n) Θ(n)
Insert(push) Θ(1) Θ(1)
Delete(pop Θ(1) Θ(1)

push(),pop(),isEmpty(),peek() λͺ¨λ‘ O(1) μ‹œκ°„μ΄ κ±Έλ¦½λ‹ˆλ‹€.
μ΄μœ λŠ” μ‚½μž… μ‚­μ œλŠ” 항상 Topμ—μ„œλ§Œ μΌμ–΄λ‚˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.