Computer Science/Data Structures

Types of Binary Tree๐ŸŒฒ

metamong 2023. 1. 10.

๐ŸŒฒpriority queue ์ž๋ฃŒ๊ตฌ์กฐ ํฌ์ŠคํŒ…์—์„œ heap์€ ์ผ์ข…์˜ CBT(Complete Binary Tree) ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•œ ์ ์ด ์žˆ๋‹ค.

 

priority queue - heap

1. concepts> โ˜๏ธ ์šฐ์„ ์ˆœ์œ„ ํ = '์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ' โ˜๏ธ ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ ex) ๋ฌผ๊ฑด ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๊ฐ€

sh-avid-learner.tistory.com

๐ŸŒฒ ์—ฌ๊ธฐ์„œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Binary Tree์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž.

 

๐ŸŒฒ Binary Tree๋ž€ tree ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…์œผ๋กœ, ๊ฐ node์˜ ์ž์‹ node๋Š” ์ตœ๋Œ€ 2๊ฐœ ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ left & right child๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

โ‘  representation) binary tree์˜ ํ‘œํ˜„ ํ˜•ํƒœ๋Š” ๊ฐ€์žฅ ์œ„ ์ชฝ node์˜ pointer๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ, tree๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋Š” ๊ฑด, ์œ„ ์ชฝ node์˜ value๋Š” NULL์ด๋ผ๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

→ ๋”ฐ๋ผ์„œ ๊ฐ node์˜ binary tree๋Š” ์„ธ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. 1) ๋ฐ์ดํ„ฐ + 2) left child๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ + 3) right child๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

 

โ‘ก binary tree ์—ฐ์‚ฐ) 

→ insertiing an element

→ removing an element

→ searching for an element

→ traversing the tree

 

→ tree์˜ ๋†’์ด ๊ตฌํ•˜๊ธฐ

→ tree์˜ node level ๊ตฌํ•˜๊ธฐ

→ ์ „์ฒด tree์˜ size ๊ตฌํ•˜๊ธฐ

 

โ€ป tree ๊ด€๋ จํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ถ”ํ›„ ํฌ์ŠคํŒ… ์ฐธ์กฐ! โ€ป

 

๐ŸŒฒ Binary Tree๋Š” ํฌ๊ฒŒ 6๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค(์ถ”๊ฐ€๋กœ ๋” ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋‹จ 6๊ฐ€์ง€๋งŒ ์•Œ์•„๋ณด์ž)

1. Full Binary Tree

๐ŸŒฒ Full Binary Tree๋Š” ์ž์‹ node๊ฐ€ 0๊ฐœ์ด๊ฑฐ๋‚˜ 2๊ฐœ์ธ Tree๋ฅผ ๋œปํ•œ๋‹ค.  proper binary tree๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, leaf node ์ œ์™ธ ๋ชจ๋“  node๊ฐ€ 2๊ฐœ์˜ ์ž์‹ node๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” tree๋ผ๊ณ ๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐ŸŒฒ internal node ๊ฐœ์ˆ˜๊ฐ€ l์ด๊ณ , leaf node ๊ฐœ์ˆ˜๊ฐ€ L์ด๋ผ๋ฉด, L = l + 1 ๊ณต์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค.

(Full Binary Tree์— ๊ตญํ•œํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  tree์— ์ ์šฉ๋˜๋Š” ๊ณต์‹์€ L = l + 1 (l์€ internal node์˜ ๊ฐœ์ˆ˜))

2. Degenerate(pathological) Tree

๐ŸŒฒ๋ชจ๋“  internal node๊ฐ€ ๋‹จ 1๊ฐœ์˜ ์ž์‹ node๋งŒ ๊ฐ–๊ณ  ์žˆ๋Š” Tree๋ฅผ ๋œปํ•œ๋‹ค. (์™ผ์ชฝ์ด๋“  ์˜ค๋ฅธ์ชฝ์ด๋“ )

3. Skewed Binary Tree

๐ŸŒฒ์œ„ 2๋ฒˆ์˜ degnerated tree์˜ ์ผ์ข…์œผ๋กœ, ์™ผ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ง„ํ–‰๋˜๊ฑฐ๋‚˜, ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์ง„ํ–‰๋œ tree๋ฅผ ๋œปํ•œ๋‹ค.

4. Complete Binary Tree

๐ŸŒฒfull binary tree์™€ ํ˜ผ๋™ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, complete binary tree๋Š” ๋งจ ๋งˆ์ง€๋ง‰ level ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  level์ด ์ฑ„์›Œ์ ธ ์žˆ๊ณ  ๋งˆ์ง€๋ง‰ level์—๋Š” ์™ผ์ชฝ๋ถ€ํ„ฐ ์ตœ๋Œ€ํ•œ element๊ฐ€ ์ฑ„์›Œ์ง„ tree๋ฅผ ๋œปํ•œ๋‹ค.

๐ŸŒฒheap์ด ํ˜•์„ฑํ•˜๋Š” Complete Binary Tree

5. Perfect Binary Tree

๐ŸŒฒ๋ชจ๋“  internal node๋Š” ๋‘ ์ž์‹ node๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๋ชจ๋“  leaf node๋Š” ๋™์ผ level์— ์žˆ๋Š”, ๋ง ๊ทธ๋Œ€๋กœ perfectํ•˜๊ฒŒ ์ฑ„์›Œ์ง„ tree๋ฅผ ๋œปํ•œ๋‹ค.

๐ŸŒฒ ๋”ฐ๋ผ์„œ a perfect binary tree of height h๋Š” ์ด $2^{h+1} -1$๊ฐœ์˜ node๋ฅผ ๊ฐ–๊ณ  ์žˆ์Œ์„ height๋กœ๋„ node ๊ฐœ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

6. Balanced Binary Tree

๐ŸŒฒ์„ฑ๋Šฅ๋ฉด์œผ๋กœ ์ข‹์€ tree๋กœ, search & insert & delete ๋ชจ๋‘ $O(log n)$์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค.


* ์ถœ์ฒ˜1) https://www.geeksforgeeks.org/handshaking-lemma-and-interesting-tree-properties/

* ์ถœ์ฒ˜2) https://www.geeksforgeeks.org/types-of-binary-tree/

'Computer Science > Data Structures' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

set() & dict() - ์ง‘ํ•ฉ๊ณผ ๋งต  (0) 2023.08.03
Binary heap  (0) 2023.02.06
priority queue(binary heap)  (0) 2023.01.09
hash table / hashing  (0) 2022.11.06
๐Ÿ”stack & queue & deque  (0) 2022.09.23

๋Œ“๊ธ€