ํ(Queue)
ํ๋ ๋จผ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ๊บผ๋ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. FIFO(First-In, First-Out) ๋ฐฉ์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ ํ ์ ์๋ค.
์ด๋ ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ์๋น์ ์ค์ ์๋ฉด ๋จผ์ ์ค์ ์ ์ฌ๋์ด ๋จผ์ ์ ์ฅ์ ํ๋ ๊ฒ๊ณผ ๋์ผํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์์ ๊ทธ๋ฆผ์ ์ฃผ์ ์ฉ์ด๋ค์ด ์๋๋ฐ, ์ค๋ช ํ์๋ฉด ์๋์ ๊ฐ๋ค.
- Enqueue : ํ์ ๊ฐ์ ๋ฃ๋ ๊ธฐ๋ฅ
- Dequeue : ํ์์ ๊ฐ์ ๊บผ๋ด๋ ๊ธฐ๋ฅ
- head : ํ์ ๋งจ ์ ๋ถ๋ถ, front ๋ผ๊ณ ๋ ํจ
- tail : ํ์ ๋งจ ๋ท ๋ถ๋ถ, rear ๋ผ๊ณ ๋ ํจ
ํ์ ๊ฐ์ด ์ถ๊ฐ๋๋ค๋ฉด, tail ์์น์ ๊ฐ์ด Enqueue ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ง์ด๋ค๋ฉด head์ ๊ฐ์ด Dequeue ๋ ๊ฒ์ด๋ค.
Enqueue
์์ ๊ทธ๋ฆผ์ฒ๋ผ ํ๋ ์ ์ ์ ์ถ ๊ตฌ์กฐ์ด๊ณ , head์ tail์ ์๊ณ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ์ ๊ฐ์ ์ถ๊ฐํ ๋ ๋ง์ง๋ง ์์น๋ฅผ ์ด๋ฏธ ์๊ณ ์๊ธฐ ๋๋ฌธ์ tail์ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ์, O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๊ฒ ๋๋ค.
Dequeue
์ญ์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ ์ ์ถ ๊ตฌ์กฐ์ด๊ณ , ๋งจ ์ ๋ถ๋ถ์ ์์น๋ฅผ ์ด๋ฏธ head๋ก ์๊ณ ์๊ธฐ ๋๋ฌธ์, head๋ฅผ ๋ฐ๋ก ์ง์ฐ๋ฉด ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ญ์ ์ญ์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๊ฒ ๋๋ค.
์๊ฐ ๋ณต์ก๋
- ์ถ๊ฐ, ์ญ์ : O(1)
- ๊ฒ์ : O(n)
'๐ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] 05. ํด์ฌ ํ ์ด๋ธ(Hash Table) (0) | 2023.06.19 |
---|---|
[์๋ฃ๊ตฌ์กฐ] 04. ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List) (0) | 2023.06.09 |
[์๋ฃ๊ตฌ์กฐ] 03. ์คํ(Stack) (0) | 2023.06.07 |
[์๋ฃ๊ตฌ์กฐ] 01. ๋ฐฐ์ด (0) | 2023.06.01 |