์ ํ๊ตฌ์กฐ
(Linear structure)๋ ๋ฐ์ดํฐ๋ค์ด ์ผ๋ ฌ๋ก ์ ์ฅ๋์ด ์๋ ํํ๋ฅผ ๊ฐ์ง๋ค.
์ผ๋ ฌ๋ก ์ ์ฅํ๋ ๋ฐฉ์์ ๋ฆฌ์คํธ์ ๊ฐ ๋ฐ์ดํฐ๊ฐ ๋ค์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๊ฐ์ง๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค. ์ผ๋ ฌ๋ก ์ญ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฆฌ์คํธ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ธ์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์คํ
(Stack), ํ
(Queue) ๋ฐํฌ๊ฐ ์ถ๊ฐ๋๋ค.
๐ ๋ณธ ํฌ์คํ
์์๋ ๊ฐ๋จํ๊ฒ Stack
๊ณผ Queue
์๋ฃ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๊ณ ์ ํ๋ค.
์คํ
(Stack)์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋ฉด ์ ๋ ฅ๋๋ ์์๋๋ก ์๊ณ , ๋์ค์ ๋ค์ด์จ ๊ฒ๋ถํฐ ๋จผ์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค.
์คํ ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ LIFO
(Last In First Out)ํ์ด๋ผ๊ณ ํ๋ค. ์คํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ์ PUSH
, ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ฒ์ POP
์ด๋ผ๊ณ ํ๋ค.
๋ฐฐ์ด
(Array)๋ฅผ ์ด์ฉํด๋ ๋๊ณ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
(Linked List)๋ฅผ ์ด์ฉํด๋ ๋๋ค. ๐์คํ์ ๋ํ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
Main ํ๋ก๊ทธ๋จ์์ ํจ์ A๋ฅผ ํธ์ถํ๋ฉด Main ํ๋ก๊ทธ๋จ ์์ ํจ์ A๊ฐ ์์ด๊ณ , ํจ์ A์ ์ํ ์ค์ ํจ์ B๊ฐ ํธ์ถ๋๋ฉด, ํจ์ A์์ ํจ์ B๊ฐ ์คํ์ฒ๋ผ ์์ด๊ฒ ๋๋ค.
ํจ์ B์ ์คํ์ด ์๋ฃ๋๋ฉด ํจ์ A๊ฐ ์คํ๋๊ณ , ํจ์ A์ ์คํ์ด ์๋ฃ๋๋ฉด ์ฃผ ํ๋ก๊ทธ๋จ์ ์คํ์ด ์์๋ฉ๋๋ค (LIFO)
ํ
์ ์์ ์ฌ๋ฆฐ๋ค.๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ์ฌ๋ฆฐ ์๋์์น๋ฅผ ์ ์ผ ๋จผ์
๋จน๋๋ค.์ ์ผ ๋จผ์ ๋ง๋ ์๋์์น๋ฅผ ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก
๋จน๊ฒ ๋ ๊ฒ์ด๋ค.
ํ
(Queue)๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋ฉด ์ ๋ ฅ๋๋ ์์๋๋ก ์๊ณ , ๋จผ์ ๋ค์ด์จ ๊ฒ๋ถํฐ ๋จผ์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค.
ํ ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ FIFO (First In First Out)ํ์ด๋ผ๊ณ ํ๋ค. ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ์ ENQUEUE
, ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ ๊ฒ์ DEQUEUE
์ด๋ผ๊ณ ํ๋ค.
๋ฐฐ์ด
(Array)์ ์ด์ฉํ๊ฑฐ๋ (์ํ ํ), ๋๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
(Linked List)๋ฅผ ์ด์ฉํด๋ ๋๋ค. ๐์ปดํจํฐ ์์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ํ ์ค์ธ๋ฐ, ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์ํ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ ๊ธฐ์กด์ ์ํ๋๋ ํ๋ก์ธ์ค ์ค์์ ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค๊ฐ ์์๋๊ณ (์คํ), ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ์ ์ด์์ฒด์ ๋ ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์๋ฅผ ํ์ ํํ๋ก ๊ด๋ฆฌํฉ๋๋ค.
Windows ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ์ปดํจํฐ์์ ์ํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ด๋ฒคํธ (๋ฒํผ ๋๋ฅด๊ธฐ, ์๋์ฐ ํฌ๊ธฐ ์กฐ์ , ๋ฉ๋ด ์ ํํ๊ธฐ ๋ฑ)๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ํ ์ด๋ฒคํธ๊ฐ ํ์ ์ ์ฅ๋๊ณ , ์ํ์ค์ธ ํ๋ก๊ทธ๋จ์ด ํ์ ์ ์ฅ๋ ๊ฒ์ ์์์๋ถํฐ ์ฝ์ด ์์ ์ฒ๋ฆฌํ๋ค (์ ์ ์ ์ถ - FIFO).
์ํํ
๋ฅผ ๊ตฌ๋งค
ํด์ผ ํ๋ค. ์ค
์ ์๋ ๋ฒํธํ
๋ฅผ ๋ฐ์ ๋์ ์์๊ฐ ๋ ๋๊น์ง (Linear structure), ์์ ์๋ ์๋๋ถํฐ
์ํํ๋ฅผ ๊ตฌ๋งคํ๊ณ ๋ ๋ค ๋์ ์์
๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ ์ฐฉ์
!