ํ(Queue)
ํ๋ ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋์ค๋ ์๋ฃ๊ตฌ์กฐ๋ค.
์คํ์ด๋ ๋น๊ตํ๋ฉด ์คํ์ ์ ๊ตฌ๊ฐ 1๊ฐ์ธ ํต ๊ฐ์ ๊ตฌ์กฐ์ด๊ณ , ํ๋ ํฐ๋ ๊ฐ์ ๊ตฌ์กฐ๋ค. ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ์ฐจ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋๊ฐ๋ค.
์ด๋ฐ ๊ตฌ์กฐ๋ฅผ First In First Out(FIFO, ์ผ๋ช ํผํฌ)๋ผ๊ณ ํ๋ค.
ํ์๋ ๋๊ฐ์ ํฌ์ธํฐ๊ฐ ์กด์ฌํ๋ค. ํ๋๋ rear, ๋ค๋ฅธ ํ๋๋ front๋ค.
rear์์๋ Enqueue, front์์๋ dequeue์ฐ์ฐ์ด ์ํ๋๋ค.
ํ์ ์ฐ์ฐ
- enqueue(): ํ๊ฐ ๊ฐ๋์ฐผ๋์ง ํ์ธํ๊ณ ๊ฐ๋์ฐจ์์ง ์์ผ๋ฉด rear ์์น์ ๋ฐ์ดํฐ ์ฝ์ .
- dequeue(): ํ๊ฐ ๋น์ด์๋์ง ํ์ธํ๊ณ ๋น์ด์์ง ์์ผ๋ฉด front์์น์ ์๋ ๋ฐ์ดํฐ returnํ๊ณ remove.
- peek(): ํ์ front ์์น์ ์๋ ๋ฐ์ดํฐ return.
- isFull(): ํ๊ฐ ๊ฐ๋ ์ฐผ๋์ง ํ์ธ. ๊ฐ๋ ์ฐผ๋ค๋ฉด return 1. ์๋๋ฉด return 0.
- isEmpty(): ํ๊ฐ ๋น์ด ์๋์ง ํ์ธ. ๋น์ด ์์ผ๋ฉด return 1. ์๋๋ฉด return 0.
ํ in ํ์ด์ฌ
ํ์ด์ฌ์์๋ queue๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๊ทผ๋ฐ ๋ณดํต deque๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ๋ค. deque๊ฐ ์ข๋คbb
์)
from collections import deque
Queue = deque()
Queue.appendleft(2) # enqueue
Queue.appendleft(3) # enqueue
Queue.appendleft(5) # enqueue
Queue.appendleft(8) # enqueue
print(Queue) # deque([8, 5, 3, 2])
print(Queue.pop()) # 2 / dequeue
print(Queue.pop()) # 3 / dequeue
print(Queue) # deque([8, 5])
print(Queue[-1]) # 5 / peek
'๐ฆ Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack) (python ํ์ด์ฌ) (0) | 2023.08.20 |
---|