ν(Queue)λ?
λ¨Όμ λ€μ΄κ° λ°μ΄ν°κ° λ¨Όμ λμ€λ μλ£κ΅¬μ‘°
- FIFO(First In First Out) : μ μ μ μΆ
- push : νμ μ½μ νλ μ°μ° / pop : νμμ κΊΌλ΄λ μ°μ°
νμ λμμ리
νμ νΉμ±μ νμ©νλ λΆμΌ
μ¬λ¬ μ΄λ²€νΈκ° λ°μνμ λ λ°μν μμλλ‘ μ²λ¦¬νλ μμ
- μμ λκΈ°μ΄ : λ€νΈμν¬ ν΅μ μ λ€μμ ν΄λΌμ΄μΈνΈμμ μλ²μ μμ μ μμ²νλ©΄ λ€μ΄μ¨ μμλλ‘ μμ μ²λ¦¬
- μ΄λ²€νΈ μ²λ¦¬ : μ΄λ€ μ ν리μΌμ΄μ μ΄λ μμ€ν μμ μ¬μ©μ μ΄λ²€νΈ(ν€λ³΄λ/λ§μ°μ€) μ²λ¦¬
νμ ADT (Abstract Data Type)
- μ€νκ³Ό μ μ¬νμ§λ§ μ€νμ top → νμ front(μ) / rear(λ€)
- νλ μμμ λ°μ΄ν°λ₯Ό λΉΌκ³ λ€μμ λ£μΌλ―λ‘ μλ€ μ΅μ’ μμΉ μ μ₯ νμ
κ΅¬λΆ | μ μ | μ€λͺ |
μ°μ° | boolean isFull() | νμ λ€μ΄μλ λ°μ΄ν° κ°μκ° maxsizeμΈμ§ νμΈν΄ booleanκ° λ°ν (κ°λ μ°¨ μλ€λ©΄ True / μλλ©΄ False) |
boolean isEmpty() | νμ λ€μ΄μλ λ°μ΄ν°κ° νλλ μλμ§ νμΈν΄ booleanκ° λ°ν (λ°μ΄ν°κ° νλλΌλ μμΌλ©΄ False / μλλ©΄ True) |
|
void push(Item Tyoe item) | νμ λ°μ΄ν°λ₯Ό νΈμ | |
ItemType pop() | νμμ μ²μ νΈμν λ°μ΄ν°λ₯Ό ννκ³ κ·Έ λ°μ΄ν° λ°ν | |
μν | Int front | νμμ κ°μ₯ λ§μ§λ§μ νν λ°μ΄ν°μ μμΉλ₯Ό κΈ°λ‘ |
Int rear | νμμ μ΅κ·Όμ νΈμν λ°μ΄ν°μ μμΉλ₯Ό κΈ°λ‘ | |
ItemType data[maxsize] | νμ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ λ°°μ΄ (μ΅λ maxsizeκ°μ λ°μ΄ν° κ΄λ¦¬) |
νμ μΈλΆλμ
ν ꡬννκΈ°
1) 리μ€νΈλ₯Ό νμ©νλ λ°©μ
- push : append( )
- pop : pop( )
- 첫 λ²μ§Έ λ°μ΄ν°λ₯Ό μ κ±°ν΄μΌ νλ―λ‘ pop(0) μ¬μ©
queue = []
# νμ λ°μ΄ν° μΆκ°
queue.append(1)
queue.append(2)
queue.append(3)
# νμ 맨 μ λ°μ΄ν° μ κ±°
first_item = queue.pop(0)
print(first_item)
# νμ λ°μ΄ν° μΆκ°
queue.append(4)
queue.append(5)
# νμ 맨 μ λ°μ΄ν° μ κ±°
first_item = queue.pop(0)
print(first_item)
2) λ±μ νμ©νλ λ°©μ
- DEQ(Double Ended Queue)
- μ λμμ μ½μ μ΄λ μμ ν μ μλ νλ₯Ό ꡬνν κ²
from collections import deque
queue = deque()
# νμ λ°μ΄ν° μΆκ°
queue.append(1)
queue.append(2)
queue.append(3)
# νμ 맨 μ λ°μ΄ν° μ κ±°
first_item = queue.popleft()
print(first_item)
# νμ λ°μ΄ν° μΆκ°
queue.append(4)
queue.append(5)
# νμ 맨 μ λ°μ΄ν° μ κ±°
first_item = queue.popleft()
print(first_item)
β» μ°Έκ³ μλ£ β»
'κ³΅λΆ π > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (4) ν΄μ (0) | 2024.07.08 |
---|---|
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (2) μ€ν (0) | 2024.06.25 |
[μκ³ λ¦¬μ¦] μλ£κ΅¬μ‘° (1) λ°°μ΄κ³Ό 리μ€νΈ (0) | 2024.06.21 |
[μκ³ λ¦¬μ¦] μκ° λ³΅μ‘λ (0) | 2024.06.19 |
[μκ³ λ¦¬μ¦] μ€λΉ μ¬ν (0) | 2024.06.17 |