μ€ν(Stack)
μ€νμ κ°μ₯ λμ€μ λ£μ(push) λ°μ΄ν°λ₯Ό κ°μ₯ λ¨Όμ κΊΌλ΄λ(pop) μλ£κ΅¬μ‘°λ€.
μ΄λ° ꡬ쑰λ₯Ό Last In First Out(νμ μ μΆ, LIFO) λλ First In Last Out(μ μ νμΆ, FILO)λΌκ³ νλ€.
νν νλ°° νΈλμ μλ νλ°° μμλ€μ μκ°νλ©΄ λλ€. κ°μ₯ λμ€μ λ£μ νλ°° μμλΆν° λ¨Όμ κΊΌλ΄λκΉ
μ€νμ μ°μ°
- push(): μ€νμ΄ κ°λ μ°Όλμ§(isFull) νμΈνκ³ κ°λ μ°¨μμ§ μμΌλ©΄ top λ€μ μμΉμ λ°μ΄ν° μ½μ .
- pop(): μ€νμ΄ λΉμ΄μλμ§(isEmpty) νμΈνκ³ λΉμ΄μμ§ μμΌλ©΄ topμμΉμ μλ λ°μ΄ν° return νκ³ μμ .
- peek():μ€νμ topμ μλ λ°μ΄ν° return.
- isFull(): μ€νμ΄ κ°λ μ°Όλμ§ νμΈ. μ€νμ μ¬μ΄μ¦μ topμ μμΉκ° κ°λ€λ©΄ return 1. μλλ©΄ return 0.
- isEmpty(): μ€νμ΄ λΉμ΄μλμ§ νμΈ. topμ μμΉκ° -1μ΄λ©΄ return 1. μλλ©΄ return 0.
μ€ν in νμ΄μ¬
νμ΄μ¬μμ μ€νμ μ¬μ©ν λ λ°λ‘ λΌμ΄λΈλ¬λ¦¬κ° νμ μλ€. κ·Έλ₯ 리μ€νΈμ μλ appendλ popλ©μλλ₯Ό μ¬μ©νλ©΄ λλ€.
λ λ€ μκ°λ³΅μ‘λλ O(1)μ΄λ€.
λ°λ‘ classλ₯Ό λ§λ€μ΄ ꡬνν μ μμ§λ§, κ°λ¨νκ² listλ‘ κ΅¬νν΄ λ³Ό μ μλ€.
μ)
stack = [] #λΉ λ¦¬μ€νΈ μ μΈ
stack.append(2) # push
stack.append(3) # push
stack.append(5) # push
print(stack) # [2, 3, 5]
print(stack.pop()) # 5
print(stack) # [2, 3]
# peekκ³Ό κ°μ κΈ°λ₯. topμ μλ μμλ₯Ό return νλ€.
print(stack[-1]) # 3
μ°Έκ³
https://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm
'π¦ Data Structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ£κ΅¬μ‘°] ν(Queue) (python νμ΄μ¬) (0) | 2023.08.20 |
---|