๐Queue
๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋ ์์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํํ์ ์๋ฃ๊ตฌ์กฐ
queue: ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๋, ๋๊ธฐ์ค
๐Linear Queue
๊ธฐ๋ณธ์ ์ธ ํํ์ ๋ง๋ ๋ชจ์์ผ๋ก ๋ Queue

๐Circular Queue
ํ๋ฅผ ์ํ(Circular)์ผ๋ก ๊ตฌ์ฑํ์ฌ ์ฒ์๊ณผ ๋์ ์ฐ๊ฒฐํ Queue

Linear Queue์ ๋ฌธ์ ์ (๋ฉ๋ชจ๋ฆฌ ๋ญ๋น)์ ๋ณด์
๐Deque
์์ชฝ ๋์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ Queue
- Stack(LIFO) + Queue(FIFO) ์ ํํ
๐Priority Queue
๐ํน์ง
- FIFO(First In First Out)์ ๊ตฌ์กฐ
- ๋ฐ์ดํฐ์ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ์์ชฝ ๋์์ ์ด๋ฃจ์ด์ง(๋ค๋ฅธ ๋ฐฉํฅ์์ ์ด๋ฃจ์ด์ง)
front: ์ ๊ฑฐrear: ์ฝ์ - ๋ฐ์ดํฐ์ ์์๊ฐ ์ค์ํ ์์ ์ ์ ํฉํจ
๐์ฐ์ฐ
- enqueue(x) : ํ์ ๋ฐ์ดํฐ ์ฝ์
- dequeue() : ํ์ ๋งจ ์ ๋ฐ์ดํฐ(
front)๋ฅผ ์ญ์ ํ๊ณ return - isEmpty() : ํ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด
True, ์์ผ๋ฉดFalsereturn - size() : ํ์ ์๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ return
- front() : ํ์ ๋งจ ์ ๋ฐ์ดํฐ(
front)๋ฅผ return
๐์ฌ์ฉ
- ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋ ์์์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋์ด์ผ ํ ์ํฉ : ์ํ ์ ๋ฌด, ์ฝ์ผํฐ ๊ณ ๊ฐ ๋๊ธฐ์๊ฐ, ํ๋ฆฐํฐ ์ธ์ ๋๊ธฐ์ด
- BFS(Breadth-First Search) ๊ตฌํ
- ์บ์(Cache) ๊ตฌํ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ
๐์๊ฐ๋ณต์ก๋
| ์ฐ์ฐ | ์๊ฐ๋ณต์ก๋ |
|---|---|
| ์ฝ์ | O(1) |
| ์ญ์ | O(1) |
| ํ์ | O(n) |