Data structures (with python) - 8.Tree - 8.3 Full Binary Tree

2024. 1. 10. 23:58ใ†CS - Roadmap.sh/1. Data structures

Data structures (with python) - 8.Tree - 8.3 Full Binary Tree

 

๐Ÿ’ก A full Binary tree is a special type of binary tree in which every parent node/internal node has either two or no children. It is also known as a proper binary tree.

์ •์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋ชจ๋“  ๋ถ€๋ชจ ๋…ธ๋“œ/๋‚ด๋ถ€ ๋…ธ๋“œ๊ฐ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ–๊ฑฐ๋‚˜ ์ „ํ˜€ ๊ฐ–์ง€ ์•Š๋Š” ํŠน๋ณ„ํ•œ ์œ ํ˜•์˜ ์ด์ง„ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ ์ • ์ด์ง„ ํŠธ๋ฆฌ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ • ์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)๋Š” ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ 0๊ฐœ ๋˜๋Š” 2๊ฐœ์˜์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ํ•œ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค๋ฉด, ๊ทธ๊ฒƒ์€ ๋ฐ˜๋“œ์‹œ ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง• ๋•๋ถ„์— ์ •์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)๋Š” ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„ํฌ๋œ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

 

In Python

์ • ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ํŒŒ์ด์ฌ์—์„œ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์€ ์ด์ง„ ํŠธ๋ฆฌ ๊ตฌํ˜„๊ณผ ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅด์ง€  ์•Š์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ ํด๋ž˜์Šค ์ œ์ž‘, ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

๋‹ค๋งŒ, ์ • ์ด์ง„ ํŠธ๋ฆฌ์˜ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ 0๊ฐœ ๋˜๋Š” 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

 

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)
root.right.right = Node(7)

์œ„์˜ ์ฝ”๋“œ๋Š” 1์„ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ๊ฐ€์ง€๋Š” ์ • ์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)๋ฅผ ๋งŒ๋“œ๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

 

ํ™œ์šฉ

์ •์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)๋Š” ์ด์ง„ ํž™(binary heap)๊ณผ ๊ฐ™์€ ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ๊ตฌํ˜„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด์ง„ ํž™ ์€ ์ •์ด์ง„ ํŠธ๋ฆฌ(Full Binary Tree)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ๊ฐ’ ๋˜๋Š” ์ตœ๋Œ€๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค.

 

(์ฐจํ›„์ถ”๊ฐ€)

728x90