- ํธ๋ฆฌ์ ๊ฐ๋ .
- ํธ๋ฆฌ์ ๊ตฌ์ฑ ์์.
- ํธ๋ฆฌ์ ์ข ๋ฅ.
ํธ๋ฆฌ๋ผ๋ ์ด๋ฆ์ด ๋์จ ์ด์ ๋ ์ค์ ๋๋ฌด๋ฅผ ๊ฑฐ๊พธ๋ก ์ธ์๋์ ๋ฏํ ๋ชจ์์ด๋ผ์ ํธ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ ํ ์๋ฃ๊ตฌ์กฐ์์ ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ ๋ฑ๋ ์กด์ฌํ์ง๋ง, ํธ๋ฆฌ๊ฐ ๋์จ ์ด์ ๋ ๋ญ๊น?
์ผ๋ฐ ๋ฐฐ์ด์์ ์ฝ์ ์ด๋ ์ญ์ ๋ฅผ ํ๋๋ฐ O(N)์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์์ ์ฝ์ ํ๋ ๊ฒฝ์ฐ ๋๋จธ์ง ๋ชจ๋ ์์๋ค์ ํ ์นธ์ฉ ๋ค๋ก ๋ฏธ๋ค์ผ ํ๋ฏ๋ก ์ต์ ์ ์๊ฐ ๋ณต์ก๋ O(N)์ด ๋์จ๋ค. ํ์ง๋ง, ํธ๋ฆฌ๋ ํธํฅ ํธ๋ฆฌ๊ฐ ์๋ ์ด์ ์ผ๋ฐ์ ์ธ ํธ๋ฆฌ์์๋ O(log N) ์ ๋์ ์๊ฐ์ผ๋ก ์ค์ฌ์ง๋ค.
๋ํ ํธ๋ฆฌ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๋ ๊ฒฝ์ฐ์ ๊ต์ฅํ ์ข๋ค.
ํ์ฌ์ ์กฐ์ง๋๋ฅผ ์๊ฐํด๋ณด๋ฉด, ๋งจ ์์ ํ์ฅ๋, ์ฌ์ฅ๋์ด ์๊ณ , ๋ถ์๋ณ, ํ๋ณ๋ก ๊ฐ๊ฐ ํธ๋ฆฌ๊ฐ ์๊ธธ ๊ฒ์ด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ, ์ํ๋ ๋ถ์๋ฅผ ํ๊ณ ๋ด๋ ค๊ฐ๊ธฐ๋ง ํ๋ฉด ๋๋ฏ๋ก ๋ค๋ฅธ ์๋ฃ ๊ตฌ์กฐ๋ณด๋ค ์ฐพ๊ธฐ๊ฐ ํจ์ฌ ์ฌ์ธ ๊ฒ์ด๋ค.
ํน์ง
- Tree๋ Stack์ด๋ Queue์ ๊ฐ์ด ์ ํ ๊ตฌ์กฐ๊ฐ ์๋ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
- ๊ณ์ธต์ ๊ด๊ณ๋ฅผ ํํํ๋ค.
- ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋๋ ๋จ ํ๋์ ๋ถ๋ชจ ๋ ธ๋๋ง์ ๊ฐ๋๋ค.
- Node : ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ์์.
- Edge : ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ .
- Root Node : ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์ต์์์ ์๋ ๋ ธ๋.
- Terminal Node : ํ์์ ๋ค๋ฅธ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ ธ๋.
- Internal Node : ๋จ๋ง ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋๋ก ๋ฃจํธ ๋ ธ๋๋ฅผ ํฌํจํ๋ค.
- ๋ฃจํธ ๋ ธ๋๋ฅผ ์ค์ฌ์ผ๋ก ๋ ๊ฐ์ ์๋ธ ํธ๋ฆฌ๋ก ๋๋์ด ์ง๋ค. (๋ ธ๋๊ฐ ์์ ์๋ ์๋ค.) ๋๋์ด์ง ๋ ์๋ธ ํธ๋ฆฌ๋ ๋ชจ๋ ์ด์ง ํธ๋ฆฌ์ด์ผ ํ๋ค.
- ๊ฐ ์ธต๋ณ๋ก ์ซ์๋ฅผ ๋งค๊ฒจ์ ์ด๋ฅผ ํธ๋ฆฌ์ ๋ ๋ฒจ์ด๋ผ๊ณ ํ๋ค. ๋ ๋ฒจ์ 1๋ถํฐ ์์ํ๊ณ ๋ฃจํธ ๋ ธ๋์ ๋ ๋ฒจ์ 1์ด๋ค. ํธ๋ฆฌ์ ์ต๊ณ ๋ ๋ฒจ์ ๊ฐ๋ฆฌ์ผ ํธ๋ฆฌ์ ๋์ด๋ผ๊ณ ํ๋ค.
- ์ข
๋ฅ
- Full Binary Tree(ํฌํ ์ด์ง ํธ๋ฆฌ) : ๋ชจ๋ ๋ ๋ฒจ์ด ๊ฝ ์ฐฌ ์ด์ง ํธ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
- ๋ ๋ฒจ ๋ณ๋ก ๋ ธ๋์ ๊ฐ์๊ฐ 1,2,4,8,16 ... ์ผ๋ก ๋์ด๋๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ์ด์งํธ๋ฆฌ์์ ๊ฐ ๋ ๋ฒจ ๋ณ ์ต๋ ๋ ธ๋์ ๊ฐ์๋ 2^(k - 1)์ด ๋๋ค.
- ๋ ๋ฒจ ๋ณ ๋ ธ๋๋ ๊ณต๋น๊ฐ 2์ธ ๋ฑ๋น ์์ด์ด๋ผ๊ณ ๋ณผ ์ ์์ผ๋ฏ๋ก ๋ฑ๋น์์ด์ ํฉ์ผ๋ก ์๊ฐํ๋ฉด ๋์ด๊ฐ h์ธ ์ด์งํธ๋ฆฌ๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ ๋ ธ๋ ์๋ 2^h - 1์ด๋ผ๊ณ ํ ์ ์๋ค.
- Complete Binary Tree(์์ ์ด์ง ํธ๋ฆฌ) : ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์์๋๋ก ์ฐจ๊ณก ์ฐจ๊ณก ์ฑ์์ง ์ด์ง ํธ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
- ๋ ธ๋๋ฅผ ์ฝ์ ํ ๋ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ์ฝ์ ํ๋ ํธ๋ฆฌ์ด๋ค. ์ผ์ชฝ์ด ๋น์ด์๊ณ ์ค๋ฅธ์ชฝ์ด ๋ค์ด๊ฐ์๋ ํธ๋ฆฌ๋ ์์ ์ด์ง ํธ๋ฆฌ๊ฐ ์๋๋ค.
- Skewed Binary Tree(ํธํฅ ์ด์ง ํธ๋ฆฌ) : ๋ชจ๋ ๋ ธ๋๊ฐ ๋ถ๋ชจ์ ์ผ์ชฝ ์์์ด๊ธฐ ๋๋ฌธ์ ์ผ์ชฝ์ผ๋ก ํธํฅ๋์ด ์๊ฑฐ๋ ๋ฐ๋๋ก ๋ชจ๋ ๋ ธ๋๊ฐ ๋ถ๋ชจ์ ์ค๋ฅธ์ชฝ ์์์ด๊ธฐ ๋๋ฌธ์ ์ค๋ฅธ์ชฝ์ผ๋ก ํธํฅ๋์ด ์๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ๋งํ๋ค.
- Full Binary Tree(ํฌํ ์ด์ง ํธ๋ฆฌ) : ๋ชจ๋ ๋ ๋ฒจ์ด ๊ฝ ์ฐฌ ์ด์ง ํธ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.