1. ์ ํ ๊ตฌ์กฐ
๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ์์ผ๋ก ๊ตฌ์ฑํ๋ค.
1) ๋ฐฐ์ด(Array)
- ๋์ผํ ์๋ฃํ์ ๋ฐ์ดํฐ๋ค์ด ๊ฐ์ ํฌ๊ธฐ๋ก ๋์ด๋์ด ์์๋ฅผ ๊ฐ๊ณ ์๋ ์งํฉ์ด๋ค.
- ๋น ๋ฅธ ์ ๊ทผ(O(1))๊ณผ random access๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋ ผ๋ฆฌ์ ์ ์ฅ ์์์ ๋ฌผ๋ฆฌ์ ์ ์ฅ ์์๊ฐ ์ผ์นํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ก ํด๋น ์์์ ์ ๊ทผํ ์ ์๋ค.
- ์ธ๋ฑ์ค๋ ๋ฐฐ์ด์ ์์๋ฅผ ๊ฐ๋จํ ๊ตฌ๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฒํธ์ด๋ค. (0 ~ n-1)
- ์ ์ ์ธ ์๋ฃ ๊ตฌ์กฐ๋ก ๊ธฐ์ต ์ฅ์์ ์ถ๊ฐ๊ฐ ์ด๋ ต๊ณ ๋ฐ์ดํฐ ์ญ์ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ๊ธฐ์ต ์ฅ์๋ ๋น ๊ณต๊ฐ์ผ๋ก ๋จ์์์ด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค.
2) ๋ฐฐ์ด ๋ฆฌ์คํธ(Array List)
- ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์ฐ์๋๋ ๊ธฐ์ต ์ฅ์์ ์ฐจ๋ก๋๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง๋ง ๋น ๊ณต๊ฐ์ด ์๋ค.
- ๊ธฐ์ต ์ฅ์๋ฅผ ์ฐ์์ ์ผ๋ก ๋ฐฐ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ต ์ฅ์ ์ด์ฉ ํจ์จ์ ๊ฐ์ฅ ์ข๋ค.
- ์ ๊ทผ(O(1))์ ๋น ๋ฅด์ง๋ง ์ฝ์ ๊ณผ ์ญ์ (O(n)) ์ ์๋ฃ์ ์ด๋์ด ํ์ํ๋ค.
3) ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Liked List)
- ์๋ฃ๋ค์ ๋ฐ๋์ ์ฐ์์ ์ผ๋ก ๋ฐฐ์ด์ํค์ง ์๊ณ ์์์ ๊ธฐ์ต๊ณต๊ฐ์ ๊ธฐ์ต์ํค๋, ์๋ฃ ํญ๋ชฉ์ ์์์ ๋ฐ๋ผ ๋ ธ๋์ ํฌ์ธํฐ ๋ถ๋ถ์ ์ด์ฉํ์ฌ ์๋ก ์ฐ๊ฒฐ์ํจ๋ค.
- ๊ฐ๊ฐ์ ์์๋ค์ ์์ ์ ์์น์ ์ด์ , ๋ค์ ์์์ ์์น๋ง์ ๊ธฐ์ตํ๋ค.
- ๋์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฐ์ ธ ์ฝ์ ๊ณผ ์ญ์ (O(1))๊ฐ ์ฉ์ดํ์ง๋ง ๊ฒ์(O(n)) ์๋๊ฐ ๋๋ฆฌ๋ค. ์ฝ์ ๊ณผ ์ญ์ ์ ์ ๊ฒ์์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ ๋ชจ๋ O(n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
4) ์คํ(Stack)
- ํ์ชฝ ๋์ผ๋ก๋ง ์๋ฃ์ ์ฝ์ , ์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ค.
- LIFO(Last In First Out): ๊ฐ์ฅ ๋์ค์ ์ฝ์ ๋ ์๋ฃ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋๋ค.
5) ํ(Queue)
- ํ์ชฝ์์๋ ์ฝ์ ์์ ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ค๋ฅธ ํ์ชฝ์์๋ ์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ค.
- FIFO(First In First Out): ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ์๋ฃ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์ ๋๋ค.
- ์ฐ์ ์์ ํ(Priority Queue): ์ฐ์ ์์๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๋ณดํต ํ(Heap)์ผ๋ก ๊ตฌํํ๋ค.
2. ๋น์ ํ ๊ตฌ์กฐ
์ ํ ๊ตฌ์กฐ์๋ ๋ฌ๋ฆฌ ๋น์ ํ์ ์ธ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ํ๋ธ๋ค.
1) ๊ทธ๋ํ(graph)
์ ์ (๋ ธ๋)๊ณผ ์ ๋ถ(๊ฐ์ )์ ์งํฉ์ด๋ค.
2) ํธ๋ฆฌ(Tree)
์ ์ (๋ ธ๋)๊ณผ ์ ๋ถ(๊ฐ์ )์ ์ด์ฉํ์ฌ ์ฌ์ดํด์ ์ด๋ฃจ์ง ์๋๋ก ๊ตฌ์ฑํ ๊ทธ๋ํ์ ํน์ํ ํํ๋ก ๊ณ์ธต์ ๊ด๊ณ๋ฅผ ํํํ๋ค.