๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ด ๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ๊ณ , ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๊ฐ ๋ ธ๋์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ ๊ทผํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ค๋ ์ฐจ์ด์ ์ ๊ฐ์ง๊ณ ์๋ค.
๋ฐฐ์ด์ ์ ์ฌํ ๋ฐ์ดํฐ ์ ํ ์์์ ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ(sequence container)์ด๋ฉฐ ๊ฐ ์์๋ ์ ์ด๋ ํ๋์ ์ธ๋ฑ์ค ๋๋ ํค๋ก ์๋ณ๋๋ค.
์์ฑ ์ stack์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ฉฐ ํ ๋น๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์ ์ธ ์ ์ง์ ๋์ด์ผ ํ๊ณ ๋ฐํ์ ์ค์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ค. (์๋ฐ์คํฌ๋ฆฝํธ๊ณผ ๊ฐ์ ๋๋ถ๋ถ์ ์คํฌ๋ฆฝํธ ์ธ์ด๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.) ์ฐ์๋ ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ค์ด ๋์ด๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฒ์ ์ฃผ์๋ง ์๋ฉด ๋ค๋ฅธ ์์น๋ ์ฝ๊ฒ ์ ์ ์๋ค๋ ํน์ง์ด ์๋ค.
ํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๋น๋ฒํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋๋ ํจ์จ์ ์ด์ง ๋ชปํ๋ค. ๋ง์ฝ ๋ฐ์ดํฐ๋ฅผ ์ค๊ฐ์ ์ถ๊ฐํ๋ ค๋ฉด ์ถ๊ฐํ๋ ค๊ณ ํ๋ ์๋ฆฌ๋ฅผ ๋น์ฐ๊ณ ๋ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ ์นธ์ฉ ๋ค๋ก ๋ฐ์ด์ผํ๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋ ๋ฐฐ์ด์ ์ข์ ์ ํ์ด ๋์ง ๋ชปํ๋ค.
๋ฐฐ์ด์ ๋งจ ์์ ์ฝ์
/์ญ์ ํ๋ ๊ฒฝ์ฐ : O(n)
๋ฐฐ์ด์ ๋งจ ๋ค์ ์ฝ์
/์ญ์ ํ๋ ๊ฒฝ์ฐ : O(1)
๋ฐฐ์ด์ ์ค๊ฐ์ ์ฝ์
/์ญ์ ํ๋ ๊ฒฝ์ฐ : O(n)
O(1)
๋ฆฌ์คํธ ์ญ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ์ฅํ๋ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ(sequence container)์ด๋ฉฐ, ๊ฐ ๋ ธ๋๊ฐ ๋ฐ์ดํฐ ํ๋์ ๋ชฉ๋ก์ ๋ค์ ๋ ธ๋์ ๋ํ ์ฐธ์กฐ(๋งํฌ)๋ฅผ ํฌํจํ๋ ๋ ธ๋(์์)๋ก ๊ตฌ์ฑ๋์ด์๋ค.
์ฒซ๋ฒ์งธ ๋ ธ๋๋ฅผ ํค๋(head), ๋ง์ง๋ง ๋ ธ๋๋ฅผ ํ ์ผ(tail)์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ๊ฐ ๋ ธ๋๋ ๋ฐ์ดํฐ์ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ก ๊ตฌ์ฑ๋๋ค.
์์ฑ ์ heap์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ค.
๋ฆฌ์คํธ์ ๋งจ ์/๋ค์ ์ฝ์
๋๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ : O(1)
๋ฆฌ์คํธ์ ์ค๊ฐ์ ์ฝ์
๋๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ : O(n) (ํ์ํ๋ ์๊ฐ)
O(n)
๋ฐฐ์ด (Array) | ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Linked List) |
---|---|
์ ์ ์๋ฃ๊ตฌ์กฐ | ๋์ ์๋ฃ๊ตฌ์กฐ |
๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ์ ์ธ ์์ ์ ์ ํด์ง๋ค (javascript ์ ์ธ) | ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ๋ค์ํ๋ค(node ์ถ๊ฐ/์ญ์ ์ ๋ฐ๋ผ ์ ๋์ ) |
์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ํ ๋น | ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํ ๋น๋ฐ์ง ์์. |
์ธ๋ฑ์ค(index) | ๋ ธ๋(Node) - ๋ฐ์ดํฐ, ํฌ์ธํฐ |
์ ๊ทผ๊ณผ ํ์์ด ํธ๋ฆฌ | ์ถ๊ฐ์ ์ญ์ ๊ฐ ํธ๋ฆฌ |
๋น ๋ฅธ ์ ๊ทผ O ๋ง์ ๋ฐ์ดํฐ ์ถ๊ฐ/์ญ์ ๊ฒฝ์ฐ๊ฐ ์ ์ ๋ | ์ถ๊ฐ/์ญ์ O ๊ฒ์ ๋น๋๊ฐ ์ ์ ๋ |