
- ํธ๋ฆฌ: Node์ Branch๋ฅผ ์ด์ฉํด์, ์ฌ์ดํด์ ์ด๋ฃจ์ง ์๋๋ก ๊ตฌ์ฑํ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ์ค์ ๋ก ์ด๋์ ๋ง์ด ์ฌ์ฉ๋๋?
- ํธ๋ฆฌ ์ค ์ด์ง ํธ๋ฆฌ (Binary Tree) ํํ์ ๊ตฌ์กฐ๋ก, ํ์(๊ฒ์) ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ์ํด ๋ง์ด ์ฌ์ฉ๋จ
| ์ฉ์ด | ์๋ฏธ | ๊ธฐํ |
|---|---|---|
Node |
ํธ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ ์์ (๋ฐ์ดํฐ์ ๋ค๋ฅธ ์ฐ๊ฒฐ๋ ๋ ธ๋์ ๋ํ Branch ์ ๋ณด ํฌํจ) | |
Root Node |
ํธ๋ฆฌ ๋งจ ์์ ์๋ ๋ ธ๋ | |
Level |
์ต์์ ๋ ธ๋๋ฅผ Level 0์ผ๋ก ํ์์ ๋, ํ์ Branch๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋์ ๊น์ด๋ฅผ ๋ํ๋ | |
Parent Node |
์ด๋ค ๋ ธ๋์ ๋ค์ ๋ ๋ฒจ์ ์ฐ๊ฒฐ๋ ๋ ธ๋ | |
Child Node |
์ด๋ค ๋ ธ๋์ ์์ ๋ ๋ฒจ์ ์ฐ๊ฒฐ๋ ๋ ธ๋ | |
Leaf Node (Terminal Node) |
Child Node๊ฐ ํ๋๋ ์๋ ๋ ธ๋ | |
Sibling (Brother Node) |
๋์ผํ Parent Node๋ฅผ ๊ฐ์ง ๋ ธ๋ | |
Depth |
ํธ๋ฆฌ์์ Node๊ฐ ๊ฐ์ง ์ ์๋ ์ต๋ Level |
- ์ด์ง ํธ๋ฆฌ: ๋ ธ๋์ ์ต๋ Branch๊ฐ 2์ธ ํธ๋ฆฌ
- ์ด์ง ํ์ ํธ๋ฆฌ (Binary Search Tree, BST): ์ด์ง ํธ๋ฆฌ์ ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ์ ์ธ ์กฐ๊ฑด์ด ์๋ ํธ๋ฆฌ
- ์ผ์ชฝ ๋ ธ๋๋ ํด๋น ๋ ธ๋๋ณด๋ค ์์ ๊ฐ, ์ค๋ฅธ์ชฝ ๋ ธ๋๋ ํด๋น ๋ ธ๋๋ณด๋ค ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์์!
- ์ฃผ์ ์ฉ๋: ๋ฐ์ดํฐ ๊ฒ์(ํ์)
- ์ฅ์ : ํ์ ์๋๋ฅผ ๊ฐ์ ํ ์ ์์
๋จ์ ์ ์ด์ง ํ์ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ์ดํด ํ์ ์ดํด๋ณด๊ธฐ๋ก ํจ
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None

