์คํ๊ณผ ํ
์คํ
์คํ(stack)์ ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ์ด ํ์ ์ ์ถ(LIFO)๋ก ์ด๋ค์ง๋ ์๋ฃ๊ตฌ์กฐ
→ ํ์ ์ ์ถ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ํ์ชฝ์์๋ง ์ผ์ด๋จ

- ์ ๊ฐ์ด ์คํ์ ๋ค์ด๊ฐ๋ฉด top์ด ์ ๊ฐ์ ๊ฐ๋ฆฌํจ๋ค.
- ์คํ์์ ๊ฐ์ ๋นผ๋ผ ๋ pop๋ top์ด ๊ฐ๋ฆฌํค๋ ๊ฐ์ ์คํ์์ ๋นผ๊ฒ ๋์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์๋ ๊ฐ์ด ๋์จ๋ค.
[ํ์ด์ฌ์ ์คํ]
์์น
top: ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ผ์ด๋๋ ์์น
์ฐ์ฐ(๋ฆฌ์คํธ ์ด๋ฆ์ด s์ผ ๋)
s.append(data): top ์์น์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ
s.pop(): top ์์น์ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ํ์ธํ๋ ์ฐ์ฐ
s[-1]: top ์์น์ ํ์ฌ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ํ์ธํ๋ ์ฐ์ฐ
ํ
ํ(queue)๋ ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ์ด ์ ์ ์ ์ถ(FIFO)๋ก ์ด๋ค์ง๋ ์๋ฃ๊ตฌ์กฐ
→ ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก, ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์๋ฐฉํฅ์์ ์ด๋ค์ง

- ์ ๊ฐ ์ถ๊ฐ๋ ํ์ rear์์ ์ด๋ค์ง
- ์ญ์ ๋ ํ์ front์์ ์ด๋ค์ง
- deque๋ฅผ ์ด์ฉํ์ฌ ํ๋ฅผ ๊ตฌํ
[ํ์ด์ฌ์ ํ]
์์น
rear: ํ์์ ๊ฐ์ฅ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ญ
front: ํ์์ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ญ
์ฐ์ฐ(๋ฆฌ์คํธ ์ด๋ฆ์ด s์ผ ๋)
s.append(data): rear ๋ถ๋ถ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ
s.popleft(): front๋ถ๋ถ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ ํ์ธํ๋ ์ฐ์ฐ
s[0]: ํ์ ๋งจ ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ
โญ๏ธ ์ฐ์ ์์ ํ(priority queue)
- ๊ฐ์ด ๋ค์ด๊ฐ ์์์ ์๊ด ์์ด ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ์๋ฃ๊ตฌ์กฐ
- ํ ์ค์ ์ ๋ฐ๋ผ front์ ํญ์ ์ต๋๊ฐ ๋๋ ์ต์๊ฐ ์์น
- ํ(heap)์ ์ด์ฉํด ๊ตฌํ