1๏ธโฃ ํธ๋ฆฌ(Tree).
ํธ๋ฆฌ(Tree) ๋ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ์๋ฃ๊ตฌ์กฐ๋ก, ๋ ธ๋(Node)์ ์์ง(Edge)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํธ๋ฆฌ๋ ์ฌ์ดํด์ด ์๋ ์ฐ๊ฒฐ ๊ทธ๋ํ(Connected Graph)์ด๋ฉฐ, ๊ณ์ธต์ ๋ฐ์ดํฐ ํํ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
ํธ๋ฆฌ๋ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฐ์ดํฐ์ ์กฐ์งํ์ ๊ฒ์, ๊ณ์ธต์ ๋ฐ์ดํฐ ํํ์ ์ฌ์ฉ๋ฉ๋๋ค.
1๏ธโฃ ํธ๋ฆฌ์ ๊ตฌ์ฑ ์์.
-
๋ ธ๋(Node) : ํธ๋ฆฌ์ ๊ธฐ๋ณธ ๋จ์๋ก, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
-
์์ง(Edge) : ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ผ๋ก, ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋ํ๋ ๋๋ค.
-
๋ฃจํธ(Root) : ํธ๋ฆฌ์ ์ต์์ ๋ ธ๋๋ก, ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ต๋๋ค.
-
๋ถ๋ชจ(Parent) : ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ธ๋์ ๋๋ค.
-
์์(Child) : ๋ถ๋ชจ ๋ ธ๋์ ์ํด ๊ฐ๋ฆฌ์ผ์ง๋ ๋ ธ๋์ ๋๋ค.
-
์(Leaf) : ์์ ๋ ธ๋๊ฐ ์๋ ๋ ธ๋์ ๋๋ค.
-
๋ด๋ถ ๋ ธ๋(Internal Node) : ์์ ๋ ธ๋๊ฐ ์๋ ๋ ธ๋์ ๋๋ค.
-
๋ ๋ฒจ(Level) : ๋ฃจํธ ๋ ธ๋์์ ํน์ ๋ ธ๋๊น์ง์ ์์ง ์๋ฅผ ๋ํ๋ ๋๋ค.
-
๋์ด(Height) : ํธ๋ฆฌ์ ์ต๋ ๋ ๋ฒจ์ ์๋ฏธํฉ๋๋ค.
2๏ธโฃ ํธ๋ฆฌ์ ํน์ฑ.
- ๊ณ์ธต์ ๊ตฌ์กฐ : ํธ๋ฆฌ๋ ๊ณ์ธต์ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์งํํฉ๋๋ค.
- ์ฌ์ดํด ์์ : ํธ๋ฆฌ๋ ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ์ ๋๋ค.
- ์ฐ๊ฒฐ์ฑ : ๋ชจ๋ ๋ ธ๋๋ ํ๋์ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์๋ก ๋์ด ์์ต๋๋ค.
- ํ ๊ฐ์ ๋ฃจํธ ๋ ธ๋ : ํธ๋ฆฌ๋ ํ๋์ ๋ฃจํธ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ฃจํธ ๋ ธ๋๋ ํธ๋ฆฌ์ ์์์ ์ ๋๋ค.
3๏ธโฃ ํธ๋ฆฌ์ ์ข ๋ฅ.
-
์ด์ง ํธ๋ฆฌ(Binary Tree) : ๊ฐ ๋ ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ ํธ๋ฆฌ์ ๋๋ค.
-
์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree, BST) : ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก, ์ผ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์ด ๋ถ๋ชจ ๋ ธ๋์ ๊ฐ๋ณด๋ค ์๊ณ , ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ๊ฐ์ด ๋ถ๋ชจ ๋ ธ๋์ ๊ฐ๋ณด๋ค ํฐ ํน์ฑ์ ๊ฐ์ง๋๋ค.
-
๊ท ํ ์ด์ง ํธ๋ฆฌ(Balanced Binary Tree) : AVL ํธ๋ฆฌ, ๋ ๋-๋ธ๋ ํธ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ด ํธ๋ฆฌ์ ๋์ด๊ฐ ๊ท ํ์ ์ด๋ฃจ๋๋ก ์ ์งํ๋ ํธ๋ฆฌ์ ๋๋ค.
-
B-ํธ๋ฆฌ(B-Tree) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ ์์คํ ์์ ์ฌ์ฉ๋๋ ํธ๋ฆฌ๋ก, ์์ ๋ ธ๋์ ์๊ฐ ์ ํด์ง ๋ค์ง ํธ๋ฆฌ(Multiway Tree)์ ๋๋ค.
-
ํ(Heap) : ์์ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก, ๋ถ๋ชจ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ํน์ฑ์ ๊ฐ์ง๋๋ค.
-
ํธ๋ผ์ด(Trie) : ๋ฌธ์์ด ๊ฒ์์ ์ํ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ก, ์ ๋์ฌ ๊ฒ์์ ์ ์ฉํฉ๋๋ค.
4๏ธโฃ ํธ๋ฆฌ์ ์ฃผ์ ์ฐ์ฐ.
- ์ฝ์ (Insertion) : ํธ๋ฆฌ์ ์๋ก์ด ๋ ธ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์ญ์ (Deletion) : ํธ๋ฆฌ์์ ๋ ธ๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- ํ์(Search) : ํธ๋ฆฌ์์ ํน์ ๊ฐ์ ์ฐพ์ต๋๋ค.
- ์ํ(Traversal) : ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํฉ๋๋ค. ์ ์(Preorder), ์ค์(Inorder), ํ์(Postorder), ๋ ๋ฒจ ์ํ(Level Order) ๋ฐฉ์์ด ์์ต๋๋ค.