์ด์งํธ๋ฆฌ (Binary Tree)
์ด์งํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
๋น์ด์๊ฑฐ๋(๋ ธ๋๊ฐ 0๊ฐ), ํน์
๋ฃจํธ(Root)์ ๋๊ฐ์ ์๋ก ๊ฒน์น์ง ์๋ ์ด์ง ํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ๊ฐ ์ผ์ชฝ ์๋ธํธ๋ฆฌ(left subtree)์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ(right subtree)๋ผ ํฉ๋๋ค.
์ด๋ก ์ ์ธ ์ธก๋ฉด์์ ๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ
ํธ๋ฆฌ๋ ๋ ธ๋๊ฐ ํ๋ ์ด์ ์กด์ฌํด์ผ ํ๋ฏ๋ก ํธ๋ฆฌ๊ฐ ์๋์ง๋ง,
์ด์งํธ๋ฆฌ๋ ๋น์ด์์ ์ ์์ผ๋ฏ๋ก ์ด์งํธ๋ฆฌ๋ ๋ง์ต๋๋ค.
์ด์งํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ฒผ์ต๋๋ค.
ํธ๋ฆฌ์ ์ด์งํธ๋ฆฌ์ ์ฐจ์ด์
1. ๋ ธ๋์ ์ต์ ๊ฐ์
ํธ๋ฆฌ๋ ๋ ธ๋๊ฐ ํ๋ ์ด์์ด์ด์ผ ํ์ง๋ง
์ด์งํธ๋ฆฌ๋ ๋ ธ๋๊ฐ 0๊ฐ์ฌ๋ ๋ฉ๋๋ค.
2. ์๋ธํธ๋ฆฌ์ ์์
ํธ๋ฆฌ์ ์๋ธํธ๋ฆฌ์๋ ์์๋, ์์น๋ ์กด์ฌํ์ง ์์ต๋๋ค.
์ด์งํธ๋ฆฌ์ ์๋ธํธ๋ฆฌ์๋ ์์น์ ์์๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ๋๊ฐ์ ํธ๋ฆฌ๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ง์ฝ ์ด๋ค์ด ํธ๋ฆฌ์ธ ๊ฒฝ์ฐ, ์ด๋ค์ ์๋ก ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์งํธ๋ฆฌ๋ผ๋ฉด ์ด๋ค์ ์๋ก ๋ค๋ฆ ๋๋ค.
์ด์งํธ๋ฆฌ์ ์ข ๋ฅ
์น์ฐ์น(Skewed / Degenerate) ์ด์งํธ๋ฆฌ
ํธ๋ฆฌ๊ฐ ํ ๋ฐฉํฅ์ผ๋ก ๊ธฐ์ธ์ด์ง ํธ๋ฆฌ์ ๋๋ค.
์์ ์ด์งํธ๋ฆฌ (Complete Binary Tree)
๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ๊ณ ๋ชจ๋ ๋ ๋ฒจ์์ ๋ ธ๋๊ฐ ์์ ํ ์ฑ์์ ธ ์์ต๋๋ค.
๋ง์ง๋ง ๋ ๋ฒจ์ ๊ฝ ์ฐจ ์์ง ์์๋ ๋์ง๋ง, ๋ ธ๋๊ฐ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฑ์์ ธ์ผ ํฉ๋๋ค.
ํฌํ์ด์งํธ๋ฆฌ (Full Binary Tree)
๋ชจ๋ ๋ ๋ฒจ์์ ๋ ธ๋๊ฐ ์์ ํ ์ฑ์์ง ํธ๋ฆฌ์ ๋๋ค.
์ด์งํธ๋ฆฌ์ ๋ ๋ฒจ๊ณผ ๋ ธ๋ ์์์ ๊ด๊ณ
๋ฃจํธ์ ๋ ๋ฒจ์ 1๋ก ๋ณด์์ ๋, ๋ ๋ฒจ i์ ์์ ์ ์๋ ๋ ธ๋์ ์ต๋ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$2^{i-1}$$
๋ํ
๋ฃจํธ์ ๋ ๋ฒจ์ 1๋ก ๋ณด์์ ๋, ๊น์ด(๋์ด)๊ฐ k์ธ ์ด์งํธ๋ฆฌ๊ฐ ๊ฐ์ง ์ ์๋ ๋ ธ๋์ ์ต๋ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$2^{0}+2^{1}+2^{2}+\cdots + 2^{k-1}$$
$$=2^{k} - 1$$
์ญ์ผ๋ก ์์ ์ด์งํธ๋ฆฌ์ ๋ ธ๋์ ๊ฐ์๊ฐ n์ผ ๋ ๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$$[log_2(n)] + 1$$
์๋ ธ๋ ์์ ์ฐจ์๊ฐ 2์ธ ๋ ธ๋ ์์์ ๊ด๊ณ
์๋ ธ๋์ ๊ฐ์๋ฅผ $n_0$, ์ฐจ์๊ฐ 2์ธ ๋ ธ๋์ ์๋ฅผ $n_2$ ๋ผ๊ณ ํ๋ฉด ๋ค์์ด ์ฑ๋ฆฝํฉ๋๋ค.
$$n_0 = n_2 + 1$$
์ฆ๋ช
Left Child -Right Sibling ํํ๊ณผ์ ๊ด๊ณ
ํธ๋ฆฌ๋ฅผ Left Child - Right Sibling ๋ก ํํํ๋ ๊ฒ์ ์ปดํจํฐ์ ๊ด์ ์์ ๋ณด์๋ฉด ๊ฒฐ๊ตญ Left ๋ ธ๋์ Right ๋ ธ๋๋ฅผ ๊ฐ์ง ์ด์ง ํธ๋ฆฌ๋ฅผ ๋ณด๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
๋ฌผ๋ก ํธ๋ฆฌ์์์ child์ sibling์ ๊ด๊ณ๋ ๋ฌ๋ผ์ง๋๋ค๋ง, child์ sibling์ด ์ค์ํ ๊ฒ์ด ์๋๋ผ๋ฉด left child - right sibling์ ์ด์ง ํธ๋ฆฌ๋ก ๋ณผ ์ ์์ต๋๋ค.
left child - right sibling์ ์๊ณ ๋ฐฉํฅ์ผ๋ก 45๋ ํ์ ํ๋ฉด ์ด์งํธ๋ฆฌ๊ฐ ๋ฉ๋๋ค.
'๐ฅ Computer Science > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[5] - ์ด์ง ํธ๋ฆฌ์ ๊ตฌํ (0) | 2022.06.05 |
---|---|
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[4] - ํธ๋ฆฌ์ ํ์ (์ํ) (0) | 2022.06.05 |
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[2] - ํธ๋ฆฌ์ ํํ (0) | 2022.06.04 |
[์๋ฃ๊ตฌ์กฐ] - ํธ๋ฆฌ(Tree)[1] - ํธ๋ฆฌ์ ์ ์์ ์ฉ์ด (0) | 2022.06.04 |
[์๋ฃ๊ตฌ์กฐ] - Circular Queue (ํํ ํ) (0) | 2022.06.04 |