๐ฏ ๋ชฉํ :ย Tree ์๋ฃ๊ตฌ์กฐ์ ์ดํด
๐ Tree
๋น ์ ํ ๊ตฌ์กฐ๋ก ๋๋ฌด๋ฅผ ๊ฑฐ๊พธ๋ก ๊ทธ๋ฆฐ ํํ์ ์๋ฃ๊ตฌ์กฐ.

๐ Tree ๊ตฌ์กฐ์ ํน์ง
- Root ๋ผ๋ ํ๋์ ์ต์์ ๋ฐ์ดํฐ๋ฅผ ์์์ผ๋ก ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ (=๊ฐ์ง Edge)์ผ๋ก ์ฐ๊ฒฐํ๋ค.
- ๊ฐ ๋ฐ์ดํฐ๋ฅผ Node๋ผ๊ณ ํ๋ฉฐ, ๋ ๋
ธ๋๊ฐ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด ์ ธ์๋ค.
- ๊น์ด(Depth)๋ ๋ฃจํธ๋ก ๋ถํฐ ํ์ ๊ณ์ธต์ ํน์ ๋
ธ๋๊น์ง์ ๊ธธ์ด๋ฅผ ํํ ํ๋ค.
- ๋ ๋ฒจ(Level)์ ๊ฐ์ ๊ณ์ธต์ ์๋ ๋
ธ๋๋ฅผ ๋ฌถ์ ์งํฉ์ด๋ค. ๊ฐ์ ๋ ๋ฒจ์ ๋
ธ๋๋ฅผ ํ์ ๋
ธ๋๋ผ ํ ์ ์๋ค.
- ๋์ด(Height)๋ ๋ฆฌํ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฃจํธ๊น์ง์ ๊ธธ์ด๋ฅผ ํํํ๋ค.
- ์๋ธ ํธ๋ฆฌ๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ์์ ์์ ํธ๋ฆฌ๋ฅผ ํํํ๋ค.
๐ Binary Tree / Binary Search Tree
์ด์ง ํธ๋ฆฌ์ ๊ตฌ์กฐ์ ์ด์ง ํธ๋ฆฌ ๊ธฐ๋ฐ์ ํ์์ ์ํ ์๋ฃ๊ตฌ์กฐ์ธ ์ด์ง ํ์ ํธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ค.
๐ ์ด์ง ํธ๋ฆฌ(Binary Tree)
- ๊ฐ ๋
ธ๋๊ฐ 0๊ฐ์ ๋
ธ๋ ์ด์ ์ผ์ชฝ ์์๊ณผ ์ค๋ฅธ์ชฝ ์์ ๋
ธ๋ ์ต๋ ๋์ ๊ฐ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ค.
- ์์ ์ด์ง ํธ๋ฆฌ(Complete binary tree)

- ์์ ์ด์งํธ๋ฆฌ๋ ๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ ๋ ๋ฒจ์ ๋ชจ๋ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ๋ง์ง๋ง ๋ ๋ฒจ์ ๋
ธ๋๋ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ๋
ธ๋๋ฅผ ๋น ์ง์์ด ์ฑ์ฐ๋ ๋๊น์ง ์ฑ์ธ ํ์์๋ค.
- ์ ์ด์ง ํธ๋ฆฌ(Full binary tree)๋ ๊ฐ ๋
ธ๋๊ฐ 0๊ฐ ๋๋ 2๊ฐ์ ์์๋
ธ๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฃจํธ๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ๋ฒจ์ ๋
ธ๋๊ฐ ๋๊น์ง ์ฑ์์ ธ ์์ง ์์ ๋น๋์นญ ๊ตฌ์กฐ๋ค.
- ํฌํ ์ด์ง ํธ๋ฆฌ(Perfect binary tree)๋ ๋ง์ง๋ง ๋ ๋ฒจ์ ๋
ธ๋๊น์ง ๊ฐ๋ ์ฑ์์ ธ ์๋ ๊ตฌ์กฐ๋ค.ย
๐ ํธ๋ฆฌ์ ํ์
๐ ๋๋น ์ฐ์ ํ์(Breathde First Search)
- ๋ฃจํธ์์ ์ผ์ชฝ์ ์์ ๋
ธ๋๋ก ๋ถํฐ ๊ฐ ๋ ๋ฒจ๋ณ ํ์์ํ๋ค.

๐ ๊น์ด ์ฐ์ ํ์(Depth First Search)
- ๊น์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋์ ๊ฒฝ๋ก๋ฅผ ๋๊น์ง ํ์ํ ๋ค์ ๊น์ด ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค.

๐ ๊น์ด ์ฐ์ ํ์์์์ ์ํ
- ๊น์ด ์ฐ์ ํ์์ ํ ๋ ์ธ์ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ฉฐ ์ํ๋ฅผ ํ ์ง์ ๋ํ ์ธ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค.

๐ ์ ์ ์ํ
- ๋ฃจํธ -> ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ -> ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ์์ผ๋ก ๋ฐฉ๋ฌธํ์ฌ ์ํ.
๐ ์ค์ ์ํ
- ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ -> ๋ฃจํธ -> ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ ์์๋ก ๋ฐฉ๋ฌธํ์ฌ ์ํ.
๐ ํํ ์ํ
- ์ผ์ชฝ ์๋ธํธ๋ฆฌ -> ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ -> ๋ฃจํธ ์์ผ๋ก ๋ฐฉ๋ฌธํ์ฌ ์ํ
๐ ์ด์ง ํ์ ํธ๋ฆฌ
- ์ด์งํธ๋ฆฌ ๊ธฐ๋ฐ์ ํ์์ ์ํ ์๋ฃ๊ตฌ์กฐ.
- ํจ์จ์ ์ธ ํ์ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ฉฐ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ชจ๋ ์ผ์ชฝ ์์์ ๊ฐ์ด ๋ฃจํธ๋ ๋ถ๋ชจ๋
ธ๋์ ๊ฐ๋ณด๋ค ์๊ณ , ๋ชจ๋ ์ค๋ฅธ์ชฝ ์์์ ๊ฐ์ด ๋ฃจํธ๋ ๋ถ๋ชจ๋
ธ๋์ ๊ฐ๋ณด๋ค ํฌ๋ค.
- ๋ฐฐ์ด๋ก ์ด์งํธ๋ฆฌ๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ฉฐ ๋ฐฐ์ด์ ํฌ๊ธฐ์๋ฐ๋ผ ํธ๋ฆฌ์ ๋์ด๊ฐ ์ ํ๋๋ค.
์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก Link๋ฅผ ์ด์ฉํ ์ด์งํธ๋ฆฌ๋ฅผ ๊ตฌํํ๋ฉฐ LinkedList๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ฌํ๋ค.

๐ย ์ด์ง ํ์ ํธ๋ฆฌ ๊ตฌํ
- ๊ฐ๋
ํ์ต์ ๋ธ๋ก๊น
์ ๋ฆฌ๋ก ๋ง๋ฌด๋ฆฌํ๊ณ ,
- ๋ค์ ๋ธ๋ก๊น
์์๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ Link๋ฅผ ์ด์ฉํ ๋ฐฉ์์ผ๋ก ์ฝ์
๊ณผ ์ญ์ ๊ธฐ๋ฅ์ ํ๋ ๋ฉ์๋๊น์ง ๊ตฌํํด ๋ณผ๊ฒ์ด๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ๋ ๊ท ํ ์กํ ์
๋ ฅ์์์ ๋ฐ์ดํฐ๊ฐ๊ฐ ์๋๋ ์
๋ ฅ ๋๋ ๊ฐ์ ์์์ ๋ฐ๋ผ ํ์ชฝ์ผ๋ก ๋
ธ๋๊ฐ ๋ชฐ๋ฆด์๋ ์๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ท ํ ์ด์ง ๊ฒ์ ํธ๋ฆฌ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํด๋ณผ ์์ ์ด๋ค.