ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐ์ํ
์ด์ง ํธ๋ฆฌ๋ ํธ๋ฆฌ์ ํฌํจ๋๋ ๋ชจ๋ ๋ ธ๋์ ์ฐจ์๊ฐ 2 ์ดํ์ธ ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ์ฆ ๋ชจ๋ ๋ ธ๋๋ ์์์ด ์๊ฑฐ๋ (๋ฆฌํ๋ ธ๋์ ๊ฒฝ์ฐ), ํ๋๋ง ์๊ฑฐ๋ ์๋๋ฉด ๋ ์๋ ์ธ ๊ฒฝ์ฐ ์ค ํ๋์ ํด๋นํ๋ค.
์ด์ง ํธ๋ฆฌ์ ์ถ์์ ์๋ฃ๊ตฌ์กฐ
์ฐ์ฐ์ ์ ์
- size() - ํ์ฌ ํธ๋ฆฌ์ ํฌํจ๋์ด ์๋ ๋ ธ๋์ ์๋ฅผ ๊ตฌํจ
- depth() - ํ์ฌ ํธ๋ฆฌ์ ๊น์ด (๋๋ ๋์ด; height)๋ฅผ ๊ตฌํจ
- ์ํ (traversal)
์ด์ง ํธ๋ฆฌ์ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ
# ๋ ธ๋ ํด๋์ค
# ์ด์งํธ๋ฆฌ์ ๊ตฌํ - ๋
ธ๋(node)
class Node:
def __init__(self, item):
self.data = item
self.left = None
self.right = None
# ํธ๋ฆฌ ํด๋์ค
# ์ด์ง ํธ๋ฆฌ์ ๊ตฌํ - ํธ๋ฆฌ(tree)
class BinaryTree:
def __init__(self, r):
self.root = r
# size()
class Node:
# ์ด์ง ํธ๋ฆฌ์ ํฌ๊ธฐ - ์ฌ๊ทํจ์ ์ด์ฉ
def size(self):
l = self.left.size() if self.left else 0
r = self.right.size() if self.right else 0
return l + r + 1
class BinaryTree:
# ํฌ๊ธฐ ๊ตฌํ๊ธฐ
def size(self):
if self.root:
return self.root.size()
else:
return 0
# depth()
# ์ด์งํธ๋ฆฌ์ ๊ตฌํ - ๋
ธ๋(node)
class Node:
# ์์ฑ์
def __init__(self, item):
self.data = item
self.left = None
self.right = None
# ๋
ธ๋์ ๊ฐฏ์ ๊ตฌํ๋ ํจ์ - ์ฌ๊ทํจ์ ์ด์ฉ
def size(self):
l = self.left.size() if self.left else 0
r = self.right.size() if self.right else 0
return l + r + 1
# depth
def depth(self):
l = self.left.depth() if self.left else 0
r = self.right.depth() if self.right else 0
return max(l,r) + 1
# ์ค์ ์ํ
def inorder(self):
traversal = []
# ์ผ์ชฝ ์๋ธํธ๋ฆฌ๊ฐ ์กด์ฌํ๋ค๋ฉด
if self.left:
traversal += self.left.inorder()
traversal.append(self.data)
# ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๊ฐ ์๋ค๋ฉด
if self.right:
traversal += self.right.inorder()
return traversal
# ์ด์ง ํธ๋ฆฌ์ ๊ตฌํ - ํธ๋ฆฌ(tree)
class BinaryTree:
# ์์ฑ์
def __init__(self, r):
self.root = r
# ํฌ๊ธฐ ๊ตฌํ๊ธฐ
def size(self):
# ๋ฃจํธ๊ฐ ์กด์ฌํ๋ฉด ๋ฆฌํด
if self.root:
return self.root.size()
else:
return 0
# depth
def depth(self):
if self.root:
return self.root.depth()
else:
return 0
# ์ค์ ์ํ
def inorder(self):
if self.root:
return self.root.inorder()
else:
return []
๋ฐ์ํ
'(๊ตฌ)์๋ฃ๊ตฌ์กฐ&์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์งํธ๋ฆฌ์ ์ํ (Traversal) - ๋์ด ์ฐ์ ์ํ (BFT) (0) | 2020.06.26 |
---|---|
์ด์งํธ๋ฆฌ์ ์ํ (Traversal) - ๊น์ด ์ฐ์ ์ํ (DFT) (0) | 2020.06.25 |
ํธ๋ฆฌ (Trees) (0) | 2020.06.25 |
์ฐ์ ์์ ํ (Priority Queues) (0) | 2020.06.25 |
ํํ ํ (Circular Queue) (0) | 2020.06.24 |
๋๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- ์ดํด๋ฆฝ์ค ์ค์น
- ๋ณ๋ช ์ฒ๋ฆฌ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ถํธ ์๋์์ฑ
- ๊ฐ๋ฐ
- java ํ๊ฒฝ๋ณ์
- ์๋ฐ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- mysql์ค์น
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- ์๋ฃ๊ตฌ์กฐ
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- Algorithm
- ์จ๋ฆฌ์์ค
- Java
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- java jdk ์ค์น
- typeAliases
- tomcat์ค์น
- ๊ฒ์ํ ์กฐํ
- ๊ฒ์๋ฌผ ์ญ์
- ๊ฒ์ํ ์ญ์
- ๊ฒ์๋ฌผ์กฐํ
- ์คํ๋ง๋ถํธ ์๋์์ฑ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
๊ธ ๋ณด๊ดํจ