๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

[์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ์˜ ์ข…๋ฅ˜, 3๊ฐ€์ง€ ์ˆœํšŒ๋ฐฉ๋ฒ•

by yunamom 2022. 5. 2.
๋ฐ˜์‘ํ˜•

โœจํŠธ๋ฆฌ(Tree) ์˜ ์ข…๋ฅ˜ 

 

 

1. Binary Tree ( ์ด์ง„ ํŠธ๋ฆฌ ) 

ํŠธ๋ฆฌ ์ข…๋ฅ˜ ์„ค๋ช…
Ternary tree ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์ตœ๋Œ€ 3๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠธ๋ฆฌ
Binary tree ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์ตœ๋Œ€ 2๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠธ๋ฆฌ (์ด์ง„ ํŠธ๋ฆฌ) ์ฆ‰, ์ž์‹์ด ์—†๊ฑฐ๋‚˜ 1๊ฐœ or 2๊ฐœ

2. Balance ( ๋ฐธ๋Ÿฐ์Šค ) 

์ข…๋ฅ˜ ์„ค๋ช…
Balanced ์ง€๋‚˜์น˜๊ฒŒ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์น˜์ง€ ์•Š์•˜๋‹ค๋ฉด Balanced Tree (Left, Right ๋…ธ๋“œ ๊ฐฏ์ˆ˜๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•  ํ•„์š”์—†์Œ)
Unbalanced ํ•œ์ชฝ์œผ๋กœ ์ง€๋‚˜์น˜๊ฒŒ ์น˜์šฐ์ณ์ง„ Tree๋ฅผ Unbalanced Tree ๋ผ๊ณ  ํ•œ๋‹ค.
(๋น„ ์ˆœํ™˜์  ๊ฒฝ๋กœ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ํŠธ๋ฆฌ๊ตฌ์กฐ์ด๋‹ค O )

3. Binary Search Tree ( ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ ) 

ํŠธ๋ฆฌ ์ข…๋ฅ˜ ์„ค๋ช…
Binary tree ๋ถ€๋ชจ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋…ธ๋“œ์˜ ์ˆซ์ž๊ฐ€ ๊ธฐ์ค€ ์—†์ด ์ž์œ ๋กญ๋‹ค. (๋…ธ๋“œ๋“ค๊ฐ„์˜ ๋Œ€์†Œ๊ด€๊ณ„๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ)
Binary Search tree Left child์™€ ๊ทธ ์ดํ•˜ ๋…ธ๋“œ๋“ค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ Parent ๋…ธ๋“œ ์˜ ๋ฐ์ดํ„ฐ ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•˜๊ณ , Right child ์™€ ๊ทธ ์ดํ•˜ ๋…ธ๋“œ๋“ค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ Parent ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ๋ณด๋‹ค ์ปค์•ผํ•œ๋‹ค. (์ฆ‰, ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ L ์ž‘์€์ˆ˜, R ํฐ์ˆ˜)
Complete Binary tree ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋ ˆ๋ฒจ์ด ๊ฐ™์•„์•ผ ํ•˜๊ณ , ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์€ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฑ„์›Œ์ ธ ์žˆ์–ด์•ผํ•œ๋‹ค.
(๋ ˆ๋ฒจ์ด ๋‹ค ๋งž๊ณ  ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ํŠธ๋ฆฌ)
Full Binary tree ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์•„์˜ˆ ์—†๊ฑฐ๋‚˜, ์ตœ๋Œ€ ๋‘˜๋ฟ์ธ tree (์ž์‹์„ ํ•˜๋‚˜๋งŒ ๊ฐ€์ง„ ๋…ธ๋“œ๊ฐ€ ์—†์–ด์•ผ ํ•จ)

( ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ = 2^(ํŠธ๋ฆฌ๋†’์ด, ๋ ˆ๋ฒจ ์ตœ๋Œ“๊ฐ’)-1 )

ํŠธ๋ฆฌ ์ข…๋ฅ˜ ์„ค๋ช…
Perfect Binary tree ์™„๋ฒฝํ•œ ํ”ผ๋ผ๋ฏธ๋“œ ํ˜•ํƒœ๋กœ, ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ž์‹์ด 2๊ฐœ์”ฉ ์žˆ๋‹ค.
(ํ•ด๋‹น ํŠธ๋ฆฌ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋Š” 2^3-1 = 7 )
Root ์ œ์™ธ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ž์‹์„ 2๊ฐœ์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ -1 ์„ ํ•ด์ค€๋‹ค.

โœจ์ด์ง„ ํŠธ๋ฆฌ์˜ 3๊ฐ€์ง€ ์ˆœํšŒ๋ฐฉ๋ฒ• 

Binary tree traversals
(์ด์ง„ ํŠธ๋ฆฌ์˜ ์ˆœํšŒ์ข…๋ฅ˜)
์„ค๋ช…
Inorder(์ค‘์œ„ ์ˆœํšŒ)  Root๋ฅผ ์ค‘๊ฐ„์— ์ˆœํšŒ (L Root R) 

1. Left leaf ์ด๋™ ๋ฐ ์ถœ๋ ฅ
3. Parent node ์ถœ๋ ฅ
4. Right child ์ถœ๋ ฅ
5. ํ•œ ๋ ˆ๋ฒจ์”ฉ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉฐ ๋ฐ˜๋ณต
6. Root ์ถœ๋ ฅํ›„ Right child ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜๋ณต
Preorder(์ „์œ„ ์ˆœํšŒ) Root๋ฅผ ์ œ์ผ ๋จผ์ € ์ˆœํšŒ (Root L R)

1. Root ์ถœ๋ ฅ
2. Left child ์ถœ๋ ฅ
3. Left leaf๋กœ ๊ฐˆ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
4. Root ์ถœ๋ ฅํ›„ Right child ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜๋ณต (Right leaf๋กœ ๊ฐˆ๋•Œ๊นŒ์ง€)
Postorder(ํ›„์œ„ ์ˆœํšŒ) Root๋ฅผ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ์ˆœํšŒ (L R Root)

1. Left leaf ์ด๋™ ๋ฐ ์ถœ๋ ฅ
2. Right child ์ถœ๋ ฅ
3. Parent node ์ถœ๋ ฅ
4. ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉฐ ๋ฐ˜๋ณต
5. Root ์ถœ๋ ฅํ›„ Right child ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜๋ณต

 

300x250

์ฝ”๋“œ