์๋ฃ๊ตฌ์กฐ๋
- ์๋ฃ๊ตฌ์กฐ (data structure) : ์ปดํจํฐ ๊ณผํ์์ ํจ์จ์ ์ธ ์ ๊ทผ ๋ฐ ์์ ์ ๊ฐ๋ฅ์ผ ํ๋ ์๋ฃ์ ์กฐ์ง, ๊ด๋ฆฌ, ์ ์ฅ์ ์๋ฏธ, ๋ฐ์ดํฐ ๊ฐ์ ๋ชจ์, ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ, ๋ฐ์ดํฐ์ ์ ์ฉํ ์ ์๋ ํจ์๋ ๋ช ๋ น์ ์๋ฏธ - ์ ์คํ๊ฒ ์ ํํ ์๋ฃ๊ตฌ์กฐ๋ ๋ณด๋ค ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์๊ฒ ํจ.
์๋ฃ๊ตฌ์กฐ๊ฐ ์ค์ํ ์ด์
์๋ฃ๊ตฌ์กฐ์๋ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋๋ฐ ๊ฐ๊ฐ ์๋ฃ๊ตฌ์กฐ๋ ๊ฐ๊ฐ์ ์ฐ์ฐ ๋ฐ ๋ชฉ์ ์ ๋ง์ถฐ์ง
B-ํธ๋ฆฌ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ํจ์จ์ ์ด๋ฉฐ, ๋ผ์ฐํ ๋ฐ์ด๋ธ์ ๋คํธ์ํฌ(์ธํฐ๋ท, ์ธํธ๋ผ๋ท)์ ์ผ๋ฐ์ ์ด๋ค.
ํ๋ก๊ทธ๋จ์ ์ค๊ณํ ๋ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ง ๊ฐ์ฅ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํด์ผ ํ๋ค.
ํฐ ์์คํ ์ ์ ์ํ ๋ ๊ตฌํ์ ๋์ด๋๋ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ์ฑ๋ฅ์ด ์๋ฃ๊ตฌ์กฐ์ ํฌ๊ฒ ์์กดํ๋ค.
์๋ฃ๊ตฌ์กฐ๊ฐ ์ ํ๋๋ฉด ์ ์ฉํ ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ์ผ๋ก ๋ช ํํด์ง๋ค.
์๋ฃ๊ตฌ์กฐ ํน์ง
์๋ฃ๊ตฌ์กฐ์ ํน์ง์ ํจ์จ์ฑ, ์ถ์ํ, ์ฌ์ฌ์ฉ์ฑ์ด๋ค.
- ํจ์จ์ฑ : ์ํฉ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์๋ฃ๋ฅผ ๊ตฌ์กฐํ์ํค๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ผ๋ก ๋์ํ๋ค.
- ์ถ์ํ : ๋ณต์กํ ์๋ฃ, ๋ชจ๋, ์์คํ ๋ฑ์ผ๋ก๋ถํฐ ํต์ฌ์ ์ธ ๊ฐ๋ ๋๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๋ ค ๋ด๋ ๊ฒ
- ์ฌ์ฌ์ฉ์ฑ : ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ํด๋น ์๋ฃ๊ตฌ์กฐ์ ์ธํฐํ์ด์ค๋ง ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ฏ๋ก ๋ชจ๋ํ๊ฐ ๊ฐ๋ฅํ๋ค.
์๋ฃ๊ตฌ์กฐ ๋ถ๋ฅ
์๋ฃ๊ตฌ์กฐ๋ ๊ตฌํ, ํํ๋ก ๋ถ๋ฅ๋๋ค.
* ๊ตฌํ์ ๋ฐ๋ผ
- ๋ฐฐ์ด : ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋จ์, ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ ํ์ ์ ์๋ฃ๊ฐ ์ฐ์์ ์ผ๋ก ์ ์ฅ๋๋ค.
๋ฐฐ์ด Array - ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํด์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ , ๋ฐฐ์ด ์์ ์ฌ๋ฌ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๊ณ , ๋ฐ๋ณต๋ฌธ๊ณผ ๊ฒฐํฉํ๋ฉด ์ ๋ณด ํจ์จ์ ๊ด๋ฆฌ, ํฌ๊ธฐ๊ฐ ์ ํด์ง , ์ธ๋ฑ์ค ์๋ณ + ์กฐํ ๊ฐ๋ฅ
- ํํ : ๋ ์ด์์ ์๋ฃํ์ ๋ฌถ์์ผ๋ก ๋ค๋ฃจ๋ ๊ตฌ์กฐ
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked List) : ๋ ธ๋๋ฅผ ๋จ์๋ก ํ๋ค. ๋ ธ๋๋ ์๋ฃ์ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ผ๋ก ๊ตฌ์ฑ
- ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๊ฐ ๋ ธ๋๋ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ , ๋ง์ง๋ง ๋ ธ๋๊ฐ ์ฒ์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ํ ๋ฆฌ์คํธ์ด๋ค.
- ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๊ฐ ๋ ธ๋๋ ์ด์ ๋ ธ๋์ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์ฒ์ ๋ ธ๋์ ์ด์ ๋ ธ๋์ ๋ง์ง๋ง ๋ ธ๋์ ๋ค์ ๋ ธ๋๋ ์๋ค.
- ํํ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ์ฒ์ ๋ ธ๋๊ฐ ์ด์ ๋ ธ๋๋ก ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ , ๋ง์ง๋ง ๋ ธ๋๊ฐ ๋ค์ ๋ ธ๋๋ก ์ฒ์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด๋ค.
๋ฆฌ์คํธ List - ๋ฐฐ์ด์ด ๊ฐ๋ ์ธ๋ฑ์ค ๊ตฌ์กฐ์ ์ฅ์ ์ ๋ฒ๋ฆฐ ๋์ ๊ฐ ๋ฐ์ดํฐ์ ๋นํ์ ์์ ๋ ๋ฐฉ๋ฒ ์ ํ , ๋ฐ์ดํฐ์ ์ฝ์ ๊ณผ ์ญ์ ์ ๋ํ ๋ฐ์ดํฐ์ ๋ญ๋น๊ฐ ์ค๊ณ , ๊ฒ์์๊ฐ์ด ์ฆ๊ฐํ ๊ฒ์ด ํน์ง
* ํํ์ ๋ฐ๋ผ
(์ ํ๊ตฌ์กฐ)
- ์คํ : ์คํ ์๋ฃ๊ตฌ์กฐ์ ๋จผ์ ์ ์ฅ๋ ๊ฒ์ด ๊บผ๋ด์ด ์ธ ๋๋ ์ ์ผ ๋์ค์ ๋์จ๋ค. ๋ฐ๋๋ก ๊ฐ์ฅ ์ต๊ทผ์ ์ ์ฅ๋ ๊ฒ์ด ๊บผ๋ด์ด ์ธ ๋๋ ์ ์ผ ๋จผ์ ๋์จ๋ค.
์คํ(Stack) - ํํ ์คํ์ ์๋๋ค๊ณ ์ด์ผ๊ธฐ ํ๋๊ฒ์ฒ๋ผ ์คํ์ ํ๋์ ๋ฐ๊ตฌ๋์ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋ด๊ฒจ์๋ ํํ
LIFO (Last In First Out) ์) ์น๋ธ๋ผ์ฐ์ ์์ผ๋ก ๊ฐ๊ธฐ ๋ค๋ก๊ฐ๊ธฐ
- ํ : ์คํ๊ณผ ๋ฐ๋๋ก ํ ์๋ฃ๊ตฌ์กฐ์ ๋จผ์ ์ ์ฅ๋ ๊ฒ์ด ์ ์ผ ๋จผ์ ๋์จ๋ค. ๋ฐ๋๋ก ๊ฐ์ฅ ๋์ค์ ์ ์ฅ๋ ๊ฒ์ด ๊บผ๋ด์ด ์ธ ๋๋ ๊ฐ์ฅ ๋์ค์ ๋์จ๋ค.
ํ(Queue) - FIFO(First-In-First-Out) ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๋ค๋ ๋ป, ์ปดํจํฐ ๊ณผํ ์ ๋ฐ์ ์์ฃผ ์ฐ์ด๋ ์๋ฃ๊ตฌ์กฐ, ์ ) ๋ฒํผ
์ผ๋ฐ์ ์ธ ํ๋ ์ ํ์ด์ง๋ง ํฌ๊ธฐ๊ฐ ์ ํ๋์ด์๊ณ ๋น ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ชจ๋ ์๋ฃ๋ฅผ ๊บผ๋ด๊ฑฐ๋ ํ ์นธ์ฉ ์ฎ๊ฒจ์ผ ํ๋ค๋ ๋จ์ ์ด ์์.
- ๋ฑ : ์์ชฝ์์ ๋ฃ๊ธฐ์ ๋นผ๊ธฐ๋ฅผ ํ ์ ์๋ ์ผ๋ฐํ๋ ์ ํ ๊ตฌ์กฐ์ด๋ค.
๋ฑ(Deque) - ๋ฑ์ ํ์ ์คํ์ ํฉ์น ๊ฒ. ํ๋ ๋ค์๋ง ์ฝ์ ์ด ๊ฐ๋ฅํ๊ณ ์คํ์ ์์๋ง ์ฝ์ ์ด ๊ฐ๋ฅํ์ง๋ง ๋ฑ์ ์๋ค ๋ชจ๋ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
(๋น์ ํ ๊ตฌ์กฐ)
- ๊ทธ๋ํ : ๊ผญ์ง์ ๊ณผ ๊ผญ์ง์ ์ ์๋ ๋ณ์ผ๋ก ๊ตฌ์ฑ (์ ํฅ ๊ทธ๋ํ - ๋ณ์ ๋ฐฉํฅ์ ๋ณดํต ๋ถ๋ชจ๋ฅผ ๊ฐ๋ฆฌํด/ ๋ฌดํฅ ๊ทธ๋ํ - ์ํ์ด ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ)
๊ทธ๋ํ(Gragh) - ๋จ์ํ ๋ ธ๋์ ๊ทธ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์์ง๋ฅผ ํ๋๋ก ๋ชจ์ ๋์ ์๋ฃ๊ตฌ์กฐ, ์ฐ๊ฒฐ๋ผ์๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ , ์ ) ์ง๋, ์งํ์ฒ , ๋ ธ์ ๋ ์ต๋จ๊ฒฝ๋ก, ์ ๊ธฐํ๋ก, ๋๋ก
- ํธ๋ฆฌ : ๋ฟ๋ฆฌ์, ๋ฟ๋ฆฌ ๋๋ ๋ค๋ฅธ ๊ผญ์ง์ ์ ๋จ ํ๋์ ๋ถ๋ชจ๋ก ๊ฐ๋ ๊ผญ์ง์ ๋ค๋ก ์ด๋ฃจ์ด์ง ๊ตฌ์กฐ. ๋ถ๋ชจ ์์ ๊ด๊ณ๋ ๋ณ์ผ๋ก ํํ (์ด์งํธ๋ฆฌ - ์์์ด ์ต๋ ๋ ๊ฐ์ธ ํธ๋ฆฌ / ํ - ์ด์งํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก ์ด์งํธ๋ฆฌ์ ์ด๋ค ํน์ฑ์ ๋ถ์ฌํ ๊ฒ)
ํธ๋ฆฌ(Tree) - ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ํน๋ณํ ์ผ์ด์ค๋ฉฐ '์ต์ ์ฐ๊ฒฐ ํธ๋ฆฌ'๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ๋ ๊ฐ์ ์ ์ ์ฌ์ด์ ๋ฐ๋์ 1๊ฐ์ ๊ฒฝ๋ก๋ง ๊ฐ์ง๋ค. ํ ๊ฐ์ ๋ฃจํธ ๋ ธ๋๋ง์ด ์กด์ฌํ๋ฉฐ ๋ชจ๋ ์์ ๋ ธ๋๋ ํ ๊ฐ์ ๋ถ๋ชจ ๋ ธ๋๋ง์ ๊ฐ์ง๋ค.
programmers.co.kr/learn/courses/17
'Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[java] equals ๊ณผ == ์ ์ฐจ์ด (0) | 2021.04.07 |
---|---|
OpenLayers ์คํ๋ ์ด์ด (0) | 2021.03.24 |
์ ๋๊ฒฝ๋ก ์๋๊ฒฝ๋ก ์ฐจ์ด (0) | 2021.01.14 |
Simple jquery coding test site (0) | 2021.01.12 |
์ด์งํ์ผ(binary file)์ ๋ํด ์์๋ณด์. (0) | 2020.09.09 |