2024. 1. 11. 01:56ใCS - Roadmap.sh/1. Data structures
Data structures (with python) - 8.Tree - 8.4 Complete Binary Tree
๐ก A complete binary tree is a special type of binary tree where all the levels of the tree are filled completely except the lowest level nodes which are filled from as left as possible.
์์ ์ด์ง ํธ๋ฆฌ๋ ๊ฐ๋ฅํ ํ ์ผ์ชฝ๋ถํฐ ์ฑ์์ง๋ ์ตํ์ ๋ ๋ฒจ ๋ ธ๋๋ฅผ ์ ์ธํ๊ณ ํธ๋ฆฌ์ ๋ชจ๋ ๋ ๋ฒจ์ด ์์ ํ ์ฑ์์ง๋ ํน์ํ ์ ํ์ ์ด์ง ํธ๋ฆฌ์ ๋๋ค.
Full Binary Tree ์ Complete Binary Tree ์ ํ๊ธ ๋ฒ์ญ์ ์กฐ๊ธ ์ฃผ์๋ฅผ ํด์ผํ๋๋ฐ,
๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ๋ค๋ณด๋ ๋ฒ์ญ์ ๋๋ค ์์ ์ด์ง์ผ๋ก ์๋ชป ํ๊ณ ์๋ ๊ฒฝ์ฐ๋ ์์๋ค.
์ ์ด์ง ํธ๋ฆฌ(ๆดไบ้ฒ-, full binary tree, ๋๋ก๋ proper ๋๋ plane ์ด์ง ํธ๋ฆฌ๋ผ๊ณ ๋ ํจ)
์์ ์ด์ง ํธ๋ฆฌ(ๅฎๅ จไบ้ฒ-, Complete binary tree)
ํฌํ ์ด์ง ํธ๋ฆฌ(้ฃฝๅไบ้ฒ-, perfect binary tree)
์์ ์ด์ง ํธ๋ฆฌ(Full Binary Tree): ์ด ํธ๋ฆฌ๋ ๋ชจ๋ ๋
ธ๋๊ฐ 0๊ฐ ๋๋ 2๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ๋ฅผ ๋งํฉ๋๋ค. ์ด ๋ง์, ํ ๋
ธ๋๊ฐ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ง๋ค๋ฉด, ๊ทธ๊ฒ์ ๋ฐ๋์ ๋ ๊ฐ์ ์์ ๋
ธ๋๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค๋ ๋ป์
๋๋ค. ๋ฐ๋ผ์ ์ด ํธ๋ฆฌ์์๋ ์ด๋ค ๋
ธ๋๋ ํ๋์ ์์๋ง์ ๊ฐ์ง ์ ์์ต๋๋ค.
์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree): ์ด ํธ๋ฆฌ๋ ๋ชจ๋ ๋ ๋ฒจ์ด ์์ ํ ์ฑ์์ ธ ์๊ณ , ๋ง์ง๋ง ๋ ๋ฒจ์ ๋
ธ๋๋ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฐจ๋ก๋๋ก ์ฑ์์ ธ ์๋ ํธ๋ฆฌ๋ฅผ ๋งํฉ๋๋ค. ์ด ๋ง์, ํธ๋ฆฌ์ ๋์ด h์ ๋ํด 1๋ถํฐ h-1๊น์ง์ ๊ฐ ๋ ๋ฒจ์ด ์์ ํ ์ฑ์์ ธ ์๊ณ , ๋ง์ง๋ง ๋ ๋ฒจ์ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ์ฑ์์ ธ ์์ด์ผ ํ๋ค๋ ๋ป์
๋๋ค.
์ด ๊ธ์์ ๋ค๋ฃฐ ํธ๋ฆฌ๋ ์์ ์ด์ง ํธ๋ฆฌ์ด๋ค.
๊ฐ๋ตํ ์ ๋ฆฌํ์๋ฉด , ๋ชจ๋ ๋ ๋ฒจ์ด ์์ ํ ์ฑ์์ ธ ์๊ณ , ๋ง์ง๋ง ๋ ๋ฒจ์ ์ผ์ชพ๋ถํฐ ์์ํด ์์๋๋ก ์ฑ์์ ธ ์๋ ํธ๋ฆฌ์ด๋ค.
In Python
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
# ๋
ธ๋ ์์ฑ
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
# appendix ๋ก ๋ ธ๋ ํธ๋ฆฌ๋ค ์๊ฐํ ํ๋๊ฒ ์ ๊ธฐ
'CS - Roadmap.sh > 1. Data structures' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Data structures (with python) - 8.Tree - 8.6 Unbalanced Tree (0) | 2024.01.13 |
---|---|
Data structures (with python) - 8.Tree - 8.5 Balanced Tree (1) | 2024.01.11 |
Data structures (with python) - 8.Tree - 8.3 Full Binary Tree (1) | 2024.01.10 |
Data structures (with python) - 8.Tree - 8.2 Binary Search Tree (0) | 2024.01.09 |
Data structures (with python) - 8.Tree - 8.1 Binary Tree (0) | 2024.01.09 |