ํ(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 |