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

ํŠธ๋ฆฌ๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋ฌด์ œํ•œ์œผ๋กœ ํ•˜์œ„ ํ•ญ๋ชฉ(์ž์‹ ๋…ธ๋“œ)๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ตœ๋Œ€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค.

์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ณธ ๊ตฌ์กฐ

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

ํŠธ๋ฆฌ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์—๋Š” ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ, ํž™ ํŠธ๋ฆฌ, AVL ํŠธ๋ฆฌ, ๋ ˆ๋“œ-๋ธ”๋ž™ ํŠธ๋ฆฌ ๋“ฑ์ด ์žˆ๋‹ค.

์ด๋“ค์€ ๋ชจ๋‘ ์ด์ง„ ํŠธ๋ฆฌ์ด๋ฉฐ ๊ธฐ๋ณธ ์†์„ฑ์€ ์ด์ง„ ํŠธ๋ฆฌ์—์„œ ํŒŒ์ƒ๋œ ๊ฒƒ์ด๋‹ค.

์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. Linked List

๋…ธ๋“œ์—์„œ ์™ผ์ชฝ ํฌ์ธํ„ฐ์™€ ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด ํฌ์ธํ„ฐ๋Š” ์ž์‹ ๋…ธ๋“œ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

  • ํฌ์ธํ„ฐ๊ฐ€ null์ผ ๊ฒฝ์šฐ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

  1. Array

๊ณ„์‚ฐ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด์„œ 0๋ฒˆ ์ธ๋ฑ์Šค๋Š” ๋น„์–ด๋‘๊ณ , 1๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ์ธ๋ฑ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

  • Left Child = arr[2x]

  • Right Child = arr[2x + 1]

Last updated