๐ปํธ๋ฆฌ(Tree)
ํธ๋ฆฌ(Tree)๋ ์คํ์ด๋ ํ์๋ ๋ฌ๋ฆฌ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ ธ๋๋ค์ ๊ณ์ธต์ ๊ด๊ณ๋ฅผ ํํํ๋ค. ๋ํ ํธ๋ฆฌ์์ ์๋ธํธ๋ฆฌ๊ฐ ์๊ณ , ๊ทธ ์๋ธํธ๋ฆฌ ์์๋ ์๋ธํธ๋ฆฌ๊ฐ ์๋ ์ฌ๊ท์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๋๊ฒ ์ดํด๋ณด๋ฉด ๊ทธ๋ํ์ ํ ์ข ๋ฅ๋ผ๊ณ ํ ์ ์๋ค.
์ ๊ทธ๋ฆผ์ฒ๋ผ ๋ ธ๋๋ค์ด ๋ง์น ๋๋ฌด ๊ฐ์ง์ฒ๋ผ ์ฐ๊ฒฐ๋์ด ์์ด์ ํธ๋ฆฌ๋ผ๋ ์ด๋ฆ์ด ๋ถํ์ง ๊ฒ ๊ฐ๋ค.
ํธ๋ฆฌ๋ ํ์ฉ๋๋ ๋ฒ์๊ฐ ๋ฌด๊ถ๋ฌด์งํ๋ค. ์ถํ์ ํฌ์คํ ํ ํ(Heap)๋ ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์๋ฃ๊ตฌ์กฐ์ด๊ณ , ์ฉ๋์ ๋ง๊ฒ ํธ๋ฆฌ์์ ํ์๋ ์๋ฃ๊ตฌ์กฐ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ง๋ค. ๊ธฐ๋ณธ์ ์ธ ํธ๋ฆฌ๋ง ๋ณด๋ฉด ๊ต์ฅํ ๊ฐ๋จํ ์๋ฃ๊ตฌ์กฐ์ง๋ง ๊น๊ฒ ํ๊ณ ๋ค๋ฉด ๋ค์๋ก ์ด๋ ค์ด ์๋ฃ๊ตฌ์กฐ์ธ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ผ์ ํธ๋ฆฌ์ ๊ธฐ๋ณธ์ ์ธ ์์๋ค์ ์ ๋ฆฌํด๋ณด๋ ์๊ฐ์ ๊ฐ์ง๋ฉด ์ดํ์ ๋์ฌ ์๋ฃ๊ตฌ์กฐ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฝ๊ฒ ์ตํ ์ ์์ ๊ฒ์ด๋ค.
๐ก ํธ๋ฆฌ์์ ์ฌ์ฉ๋๋ ์ฉ์ด
โผ ๋ ธ๋(Node)
โฝ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์์.
โฝ ๋ ธ๋์๋ ๋ฐ์ดํฐ์ ํ์ ๋ ธ๋์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. (์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ ์ฌํ๋ค.)
โฝ ๊ทธ๋ํ์์ ์ ์ ๊ณผ ๋น์ทํ ๊ฐ๋ ์ด๋ค.
โผ ๊ฐ์ (Edge)
โฝ ๋ ธ๋์ ๋ ธ๋๋ฅผ ์๋ ์ .
โผ ๋ฃจํธ ๋ ธ๋(Root Node)
โฝ ๋ถ๋ชจ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ ํธ๋ฆฌ์์ ์ต์์์ ์์นํ ๋ ธ๋.
โฝ ์ ๊ทธ๋ฆผ์์ A์ ํด๋นํ๋ค.
โผ ๋ถ๋ชจ ๋ ธ๋(Parent Node)
โฝ ์์์ ๊ฐ์ง ๋ ธ๋๋ก์จ, ํ ๋ ธ๋์ ๋ํด ์์์ ์๋ ๋ ธ๋์ด๋ค.
โฝ ์ ๊ทธ๋ฆผ์์ E์ ๋ถ๋ชจ ๋ ธ๋๋ B์ด๋ค.
โผ ์์ ๋ ธ๋(Child Node)
โฝ ๋ถ๋ชจ ๋ ธ๋์ ํ์๋ ธ๋.
โฝ ์ ๊ทธ๋ฆผ์์ B์ ์์๋ ธ๋๋ E, F์ด๋ค.
โผ ํ์ ๋ ธ๋(Sibling Node)
โฝ ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ์ง๋ ๋ ธ๋.
โฝ ์ ๊ทธ๋ฆผ์์ I์ J๋ ํ์ ๋ ธ๋์ด๋ค.
โผ ๋ฆฌํ ๋ ธ๋(Leaf Node) = ์ธ๋ถ ๋ ธ๋(External node) = ๋จ๋ง ๋ ธ๋(Terminal Node)
โฝ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ ๋ ธ๋.
โฝ ์ ๊ทธ๋ฆผ์์ E, G, I, J, K, L์ ๋ฆฌํ ๋ ธ๋์ด๋ค.
โผ ๋ด๋ถ ๋ ธ๋(Internal Node)
โฝ ๋ฆฌํ ๋ ธ๋์ ๋ฐ๋๋ก ์์์ ํ๋ ์ด์ ๊ฐ์ง ๋ ธ๋.
โฝ ์ ๊ทธ๋ฆผ์์ A, B, C, D, F, H๋ ๋ด๋ถ ๋ ธ๋์ด๋ค.
โผ ๊น์ด(depth)
โฝ ๋ฃจํธ ๋ ธ๋์์ ํด๋น ๋ ธ๋๊น์ง ๋๋ฌํ๋๋ฐ ์ฌ์ฉํ๋ ๊ฐ์ ์ ์.
โฝ ์ ๊ทธ๋ฆผ์์ G์ ๊น์ด๋ 2์ด๋ค.
โผ ๋์ด(height)
โฝ ๋ฃจํธ ๋ ธ๋์์ ๋ฆฌํ ๋ ธ๋๊น์ง์ ๊ฑฐ๋ฆฌ.
โฝ ๊ทธ ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ด ํธ๋ฆฌ์ ๋์ด์ด๋ค.
โฝ ์ ๊ทธ๋ฆผ์์ ํธ๋ฆฌ์ ๋์ด๋ 4์ด๋ค.
โผ ๋ ๋ฒจ(Level)
โฝ ๋ฃจํธ๋ฅผ 0์ผ๋ก ํ์ฌ ์๋๋ก ๋ด๋ ค๊ฐ์๋ก +1์ด ๋๋ค.(์ ์์ ๋ฐ๋ผ ๋ฃจํธ๋ฅผ level 1์ผ๋ก ํ๋๊ฒฝ์ฐ๋ ์์)
โผ ์ฐจ์(Degree)
โฝ ๋ ธ๋์ ์์ ๋ ธ๋์ ์
โฝ ์ ๊ทธ๋ฆผ์์ A์ ์ฐจ์๋ 3์ด๋ค.
โผ ๋์ด(Width)
โฝ ๋ ๋ฒจ์ ์๋ ๋ ธ๋ ์
โฝ ์ ๊ทธ๋ฆผ์์ Level 1์ ๋์ด๋ 3์ด๋ค.
๐ป๋ง์น๋ฉฐ
์ด๋ ๊ฒ ํธ๋ฆฌ์ ๊ธฐ๋ณธ์ ์ธ ์ธํ๊ณผ ์ฉ์ด์ ๋ํด์ ์์๋ณด์๊ณ ์์ผ๋ก ์ด์งํธ๋ฆฌ, ์ด์งํ์ํธ๋ฆฌ, ํ, ๋ ๋๋ธ๋ํธ๋ฆฌ์ ๊ฐ์ ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ๊น์ด ํ๊ณ ๋ค ์์ ์ด๋ค.
'CS > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] ํ(Heap)๊ณผ ์ฐ์ ์์ ํ(Priority Queue) (0) | 2022.03.20 |
---|---|
[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph) (0) | 2022.03.10 |
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack), ํ(Queue) (0) | 2022.03.08 |
[์๋ฃ๊ตฌ์กฐ] ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํํ๊ธฐ (0) | 2022.03.08 |
[์๋ฃ๊ตฌ์กฐ] ๋์ ๋ฐฐ์ด ๊ตฌํํ๊ธฐ (0) | 2022.03.08 |
๊ฒ์๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ๋ํ์์ ๊ฐ๋ฐ ๊ณต๋ถ ๋ธ๋ก๊ทธ
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!