Tree
๋น์ ํ ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ(Tree)
ํธ๋ฆฌ(Tree)๋?
์๋ฅผ ๋ค์ด ์นดํ์ ๊ฐ๋๋ฐ ๋ฉ๋ดํ์ ๋ณด๋ ์ฐจ๊ฐ์ด ์๋ฃ์ ๋จ๊ฑฐ์ด ์๋ฃ๊ฐ ๋ถ๋ฆฌ๋์ด ์๋ค. ์ฐจ๊ฐ์ด ์๋ฃ ์๋์๋ ์ค๋ฌด๋, ์์ ๋ฑ์ด ์๊ณ ๋จ๊ฑฐ์ด ์๋ฃ์๋ ์นดํธ์น๋ ธ, ๋ผ๋ผ ๊ฐ์ ๋ฉ๋ด๊ฐ ์กด์ฌํ๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ธ๊ณ์์๋ ์ด๋ฅผ ํธ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค. ์ฐ๋ฆฌ๋ ํธ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ธ์งํ์ง ๋ชปํ๊ณ ์ผ์์ํ์์ ์ฌ์ฉํ๋ ๋ฏํ๋ค.
ํธ๋ฆฌ๋ ์๋ก ๊ณ์ธต์ ๊ด๊ณ๋ฅผ ๊ฐ๋ ๋น์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๊ณ , ์ฌ์ดํด์ด ์กด์ฌํ์ง ์์ ๋ฐฉํฅ ๊ทธ๋ํ์ด๋ค. ์ฆ, ํธ๋ฆฌ๋ ๊ทธ๋ํ์ด์ง๋ง ๊ทธ๋ํ๋ ํธ๋ฆฌ๊ฐ ์๋๋ค.

ํธ๋ฆฌ๋ ๋ ธ๋(Node)์ ๊ฐ์ (Edge)๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค.
๋ฃจํธ ๋ ธ๋(Root Nod) : ํธ๋ฆฌ์ ์ต์์ ๋ ธ๋์ด๋ฉฐ, ๋ฃจํธ ๋ ธ๋๋ก๋ถํฐ ์์๋๋ค.
๋ ธ๋(Node) : ํธ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๋ ์์์ด๋ค. ๊ฐ ๋ ธ๋๋ ํ๋ ์ด์์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
๋ถ๋ชจ ๋ ธ๋ : ์ด๋ค ๋ ธ๋์ ์ฐ๊ฒฐ๋ ์์ ์๋ ๋ ธ๋์ด๋ค.
์์ ๋ ธ๋ : ์ด๋ค ๋ ธ๋์ ์ฐ๊ฒฐ๋ ์๋์ ์๋ ๋ ธ๋์ด๋ค.
๋ฆฌํ ๋ ธ๋ : ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์๋ ๋ ธ๋์ด๋ค. ๋จ๋ง ๋ ธ๋๋ผ๊ณ ๋ ํ๋ค.
๊ฐ์ (Edge) : ๋ ธ๋๋ค์ ์ฐ๊ฒฐํ๋ ์ ์ผ๋ก, ๋ถ๋ชจ ๋ ธ๋์ ์์ ๋ ธ๋์ ์ฐ๊ฒฐ์ ๋ํ๋ธ๋ค.
ํธ๋ฆฌ์ ์ฌ์ฉ ๋ชฉ์ ์ ๋ง๊ฒ ์ฌ๋ฌ ํํ์ ํธ๋ฆฌ๊ฐ ์๋ค.
๋ํ์ ์ผ๋ก ์ด์ง ํธ๋ฆฌ(Binary), ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search), AVL ํธ๋ฆฌ, B-ํธ๋ฆฌ, ํ(Heap), ๊ทธ๋ํ ๋ฑ์ด ์๋ค.
ํธ๋ฆฌ๋ ์ ์ฌ์ฉํ ๊น? ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์๋ ์ฐ์ฐ์ ์ํํ ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ฉด ์๊ฐ ๋ณต์ก๋๋ ์ฆ๊ฐํ๋ค. ํธ๋ฆฌ์์๋ ๋ฐ์ดํฐ์ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ , ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํ์ฑํ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ์ ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ํด๋ ๊ตฌ์กฐ, ์กฐ์ง ๊ตฌ์กฐ, XML ๋ฑ๊ณผ ๊ฐ์ ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฉํ๋ค.
์๋๋ ํธ๋ฆฌ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํ ํด๋ณด๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ ํด๋ณด์๋ค.
Last updated