# ์ด์ง„ํŠธ๋ฆฌ (BinaryTree)

written by sohyeon, hyemin ๐Ÿ’ก


# 1. ์ด์ง„ ํŠธ๋ฆฌ (BinaryTree)

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

์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๊ฐ€ ์™ผ์ชฝ ์ž์‹๊ณผ ์˜ค๋ฅธ์ชฝ ์ž์‹์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ๋…ธ๋“œ์˜ ์ž์‹์€ 2๋ช… ์ดํ•˜๋งŒ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋…ธ๋“œ B์˜ ์™ผ์ชฝ ์ž์‹์€ D, ์˜ค๋ฅธ์ชฝ ์ž์‹์€ E์ด๋‹ค.

์ด๋•Œ ์™ผ์ชฝ ์ž์‹์„ ๋‹ค์‹œ ๋ฃจํŠธ๋กœ ํ•˜๋Š” ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ(left subtree), ์˜ค๋ฅธ์ชฝ ์ž์‹์„ ๋‹ค์‹œ ๋ฃจํŠธ๋กœ ํ•˜๋Š” ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ(right subtree)๋ผ๊ณ  ํ•œ๋‹ค.

์‚ผ๊ฐํ˜•์œผ๋กœ ๋ฌถ์—ฌ์„œ ์žˆ๋Š” ๋ถ€๋ถ„์ด B์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์ด๋‹ค.


# 2. ์ด์ง„ ํŠธ๋ฆฌ(BinaryTree)์™€ ์ผ๋ฐ˜ ํŠธ๋ฆฌ์˜ ์ฐจ์ด์ 

  • ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ์ฐจ์ˆ˜๊ฐ€ 2์ดํ•˜์ด๋‹ค. ์ฆ‰, ์ž์‹ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2์ดํ•˜์ด๋‹ค.

  • ์ผ๋ฐ˜ ํŠธ๋ฆฌ์™€๋Š” ๋‹ฌ๋ฆฌ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜๋„ ๊ฐ–์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

  • ์ผ๋ฐ˜ ํŠธ๋ฆฌ์™€๋Š” ๋‹ฌ๋ฆฌ ์ด์ง„ ํŠธ๋ฆฌ๋Š” ์„œ๋ธŒ ํŠธ๋ฆฌ ๊ฐ„์— ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ๋ณ„ํ•œ๋‹ค.


# 3. ์ด์ง„ ํŠธ๋ฆฌ์˜ ์„ฑ์งˆ

  • n๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„ ์ด์ง„ ํŠธ๋ฆฌ๋Š” n-1๊ฐœ์˜ ๊ฐ„์„ ์„ ๊ฐ€์ง„๋‹ค.

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

# ex) ์˜ˆ์ œ

๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ : 7, ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ : 6

  • ๋†’์ด๊ฐ€ h์ธ ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ, ์ตœ์†Œ h๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ตœ๋Œ€ (2^h)-1๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค.

# ex) ์˜ˆ์ œ

์ตœ์†Œ ๋…ธ๋“œ ๊ฐœ์ˆ˜ : 3, ์ตœ๋Œ€ ๋…ธ๋“œ ๊ฐœ์ˆ˜ : 1 + 2 + 4 = 7

  • n๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋†’์ด๋Š”์ตœ๋Œ€ n์ด๊ฑฐ๋‚˜ ์ตœ์†Œ log2(n+1)์˜ ์˜ฌ๋ฆผ์ด ๋œ๋‹ค.

# ex) ์˜ˆ์ œ

์ตœ๋Œ€ ๋†’์ด : 3, ์ตœ์†Œ ๋†’์ด : 2


# 4. ์ด์ง„ ํŠธ๋ฆฌ์˜ ๋ถ„๋ฅ˜

# ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ(full binary tree)

ํŠธ๋ฆฌ์˜ ๊ฐ ๋ ˆ๋ฒจ์— ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

# ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(complete binary tree)

๋†’์ด๊ฐ€ k์ผ ๋•Œ ๋ ˆ๋ฒจ 1๋ถ€ํ„ฐ k-1๊นŒ์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ ์ฑ„์›Œ์ ธ ์žˆ๊ณ  ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ k์—์„œ๋Š” ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋…ธ๋“œ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ์ด๋‹ค.

๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์—์„œ๋Š” ๋…ธ๋“œ๊ฐ€ ๊ฝ‰ ์ฐจ ์žˆ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ ์ค‘๊ฐ„์— ๋นˆ ๊ณณ์ด ์žˆ์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.


# Reference & Additional Resources

  • Do it! ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•จ๊ป˜ ๋ฐฐ์šฐ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋ฌธ ์ž๋ฐ”ํŽธ

  • C์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ํ’€์–ด์“ด ์ž๋ฃŒ๊ตฌ์กฐ

Last Updated: 12/5/2020, 11:36:44 AM