๐Queue
๐Priority Queue
์ผ๋ฐ
queue์ฒ๋ผ FIFO ํ์์ด ์๋๋ผ, ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ ํํ์ ์๋ฃ๊ตฌ์กฐ

๐ํน์ง
- ๋ชจ๋ ๊ฐ์ ์ฐ์ ์์๊ฐ ์กด์ฌ
- ์ฐ์ ์์๊ฐ ๋์ ๊ฐ์ด ๋จผ์ ๋๊ฐ๋ ํํ
- Heap์ผ๋ก ๊ตฌํ ์ O(logn)์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ์ ์ผ๋ก Heap์ ํตํด ๊ตฌํ
- ์ฐ์ ์์๊ฐ ๊ฐ์ ๊ฐ์ด ์๋ค๋ฉด
queue์ ์์์ ๋ฐ๋ผ ๋จผ์ ๋๊ฐ
๐์ฐ์ฐ
- enqueue((k, v)) : ์ฐ์ ์์ ํ์ ๋ฐ์ดํฐ ์ฝ์
- dequeue() : ์ฐ์ ์์ ํ์์ ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ return
- isEmpty() : ์ฐ์ ์์ ํ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด
True, ์์ผ๋ฉดFalsereturn - size() : ์ฐ์ ์์ ํ์ ์๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ return
- peek() : ์ฐ์ ์์ ํ์์ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ return
๐์ฌ์ฉ
- CPU ์ค์ผ์ค๋ง
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
๐์๊ฐ๋ณต์ก๋
| ๊ตฌํ ๋ฐฉ๋ฒ | enqueue() | dequeue() |
|---|---|---|
| Unsorted Array | O(1) | O(n) |
| Unsorted Linked List | O(1) | O(n) |
| Sorted Array | O(n) | O(1) |
| Sorted Linked List | O(n) | O(1) |
| Heap | O(logn) | O(logn) |