λ°μν
1. ν (Queue)
1.1 ν (queue)λ?
- κ°μ₯ λ¨Όμ λ£μ λ°μ΄ν°λ₯Ό κΊΌλΌ μ μλ ꡬ쑰
- λκΈ°νλ ¬μ μκ°, λ¨Όμ κΈ°λ€λ¦° μ¬λμ΄ λ¨Όμ ννμ λ°λλ€
- FIFO (FIrst In, First Out) λ°©μ = LILO (Last In, Last Out) λ°©μ
1.2 νμ ꡬ쑰
1.3 νλ μ΄λμ λ§μ΄ μ°μΌκΉ?
- νλ μ£Όλ‘ μ΄μ체μ μμ λ©ν°νμ€νΉμ ꡬννκΈ° μν΄μ νλ‘μΈμ€ μ€μΌμ₯΄λ§ λ°©μμ ꡬννκΈ° μν΄ λ§μ΄ μ°μΈλ€
1.4 νμ μ©μ΄
- Enqueue (μΈν) = λ°μ΄ν°λ₯Ό λ£λ κΈ°λ₯
- Dequeue (λν) = λ°μ΄ν°λ₯Ό κΊΌλ΄λ κΈ°λ₯ (νμμ λ°μ΄ν°λ μμ λλ€.)
1.5 νμ΄μ¬μμ Queue ꡬννκΈ°
νμ΄μ¬μμ μΈνμ λνλ put, getμΌλ‘ ꡬνν μ μλ€.
import queue
#ν μμ±
q = queue.Queue()
#μΈν
q.put('hi')
q.put(121)
#ν μ¬μ΄μ¦ μΆλ ₯
q.qsize()
# κ²°κ³Όλ ; 2 // hi, 121 λ€μ΄μμ
#λν
q.get() # 'hi' μΆλ ₯
q.get() # 121 μΆλ ₯
# FIFO μ μ±
μ λ°λ¦
2. μ€ν (stack)
2.1 μ€ν(stack) μ΄λ
- λ°μ΄ν°λ₯Ό μ νμ μΌλ‘ μ κ·Όν μ μλ ꡬ쑰
- νμͺ½ κΈμμλ§ λ°μ΄ν°λ₯Ό λ£κ±°λ λΉΌλ ꡬ쑰
- LIFO (Last In, First Out) νλ μ λ°λμ μ μ± μ λ°λ₯Έλ€.
2.2 μ€νμ ꡬ쑰
2.3 μ€νμ μΈμ μ¬μ©ν κΉ?
- μ»΄ν¨ν° λ΄λΆμ νλ‘μΈμ€ ꡬ쑰μ ν¨μ λμ λ°©μμμ μ¬μ©
2.4 μ€νμ νΉμ§
- μ₯μ
- κ΅¬μ‘°κ° λ¨μν΄μ ꡬνμ΄ μ½λ€.
- λ°μ΄ν°μ μ μ₯, μ½λ μλκ° λΉ λ₯΄λ€.
- λ¨μ
- λ°μ΄ν°μ μ΅λ κ°μλ₯Ό 미리 μ ν΄μΌνλ€.
- μ΅λμΉλ₯Ό μ€μ ν΄μΌν΄μ λΉμ΄μλ 곡κ°μ΄ μμΌλ©΄ 곡κ°μ λλΉκ° μκΈ΄λ€.
- νμ΄μ¬μ μ¬κ·ν¨μλ₯Ό ν΅ν μ€νμ ꡬνμ 1000λ²κΉμ§λ§ ꡬνμ΄ κ°λ₯νλ€.
2.5 μ€νμ μ©μ΄
- push() = λ°μ΄ν°λ₯Ό μ€νμ λ£λ κ² ( νμ΄μ¬μ listμμλ appendμ λμΌν κΈ°λ₯μ κ°λλ€.)
- pop() = λ°μ΄ν°λ₯Ό νλμ© κΊΌλ΄λ ν¨μ. ( list ꡬ쑰μμλ popμ¬μ©μ΄ κ°λ₯νλ€.) κ°μ₯ λ§μ§λ§μ μλ λ¨μ΄κ° λμ€κ³ , pop(0)μΌλ‘ κ°μ₯ μ²μ μλ λ½μ μ μλ€. popλμ΄μ§ λ°μ΄ν°λ μ€ν(리μ€νΈ)μμ μμ λλ€)
λ°μν