ํธ๋ฆฌ๋?
๋ฐฐ์ด, ์ฐ๊ฒฐ๋ฆฌ์คํธ, ์คํ, ํ๋ ๋ฐ์ดํฐ๊ฐ ํ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ฒ ๊ฐ์ ํํ๋ผ ํด์ ์ ํ ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค. ํธ๋ฆฌ๋ ๋ถ๋ชจ์ ์์์ ๊ฐ์ง๊ณ ์๋ ๊ณ์ธตํ ๊ตฌ์กฐ๋ค. ๋ง์น ๊ฐ๊ณ๋๊ฐ์ ๋ชจ์์๋ฅผ ์ง๋๋ค. ๋งจ ์์ ์๋ ๋ ธ๋๋ฅผ ๋ฃจํธ(root) ๋ผ๊ณ ๋ถ๋ฅด๊ณ , ๋งจ ์๋ ์๋ ๋ ธ๋๋ค์ ๋ฆฌํ(leaf) ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด์ฒ๋ผ ๋ ธ๋๋ค์ด ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํํ๋ฉด ํจ๊ณผ์ ์ด๋ค.
์ด์ง ํธ๋ฆฌ
๋ถ๋ชจ ๋ ธ๋๋ค์ด ์ต๋ 2๊ฐ์ ์์๋ง์ ๊ฐ์ง๋ ํธ๋ฆฌ๋ฅผ ์ด์ง ํธ๋ฆฌ(binary tree) ๋ผ๊ณ ๋ถ๋ฅธ๋ค. 3๊ฐ ์ด์์ Tenary Tree ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด์งํธ๋ฆฌ๋ ๊ตฌํํ๊ธฐ๋ ์ฌ์์ ๋ค์ํ ๊ณณ์์ ์ ๋ง ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ ์ ์์๋๋ฉด ์ข๋ค.
์์ ์ด์ง ํธ๋ฆฌ
๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ๊ณ ๋ชจ๋ ์ฑ์์ ธ ์์ผ๋ฉฐ, ๋ง์ง๋ง ๋ ๋ฒจ์ ์ผ์ชฝ๋ถํฐ ์ฑ์์ ธ ์๋ ํธ๋ฆฌ๋ฅผ ์์ ์ด์ง ํธ๋ฆฌ(complete binary tree) ๋ผ๊ณ ํ๋ค.
์ ์ด์ง ํธ๋ฆฌ(Full Binary Tree)
์์์ ๊ฐ์ง๋ ค๋ฉด ๋๊ฐ๋ฅผ ๊ฐ์ง๊ณ , ์๋๋ผ๋ฉด ์์ ์ ๊ฐ์ง๋ ํธ๋ฆฌ๋ค.
ํฌํ ์ด์ง ํธ๋ฆฌ(Perfect Binary Tree)
๋ ๋ฒจ๋ ๋ง๊ณ ๋ชจ๋ ๋ ๊ฐ์ ์์์ ๊ฐ์ง ํธ๋ฆฌ๋ค. ๋ ๋ฒจ์ด n ์ด๋ผ๋ฉด ํธ๋ฆฌ ๋ ธ๋์ ๊ฐ์๋ ๋ฃจํธ ๋ ธ๋๋ง ์๋ 1๋ ๋ฒจ์ ์ ์ธํ๊ณ ์ ๋ถ 2์ n์น๊ฐ๋ ์๋์ ๊ฐ๋ค.
$$ 2^{n}-1 $$
์ด์ง ํธ๋ฆฌ ์ํ
์ด์ง ํธ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Left -> Right ์์ผ๋ก ํ์ํ๊ณ , ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ผ ๋จผ์ ๋ณด๋์ง, ์ค๊ฐ์ ๋ณด๋์ง, ์ ์ผ ๋์ค์ ๋ณด๋์ง์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ๋ฃจํธ ๋ ธ๋๋ ๊ฒ์ํ๋ ์๊ฐ์ ์๋ธํธ๋ฆฌ์ ๋ฃจํธ, ์ฆ ์๊ธฐ ์์ ์ผ๋ก ๋ณธ๋ค.
์ค์ ์ํ(Inorder)
Left -> Root - Right ๋ฅผ ๋ฐ๋ณต
์ ์ ์ํ(Preorder)
Root -> Left -> Right ๋ฅผ ๋ฐ๋ณต
ํ์ ์ํ(Postorder)
Left -> Right -> Root ๋ฅผ ๋ฐ๋ณต