ํŠธ๋ฆฌ

8/21/2025

์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋ฐฐ์—ด ,์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ์Šคํƒ๊ณผ ํ๋Š” ๋ชจ๋‘ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์˜€๋‹ค.
์•ž์œผ๋กœ ๋ฐฐ์šธ ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

ํŠธ๋ฆฌ๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์ด์ง€๋งŒ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
๊ทธ๋ ‡๊ฒŒ ํŠธ๋ฆฌ๋Š” ๊ณ„์ธต์  ์†์„ฑ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
(์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋‚˜ ๋‹ค๋ฅธ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฒฝ์šฐ ๊ณ„์ธต๋Œ€์‹  ์ˆœ์„œ๊ฐ€ ์ž˜ ํ‘œํ˜„)

์šฉ์–ด

๋ฃจํŠธ : ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ (๋ ˆ๋ฒจ์ด 0์ธ ๋…ธ๋“œ)
๋ฆฌํ”„ leaf : ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ
์กฐ์ƒ ancestor : ๋ฃจํŠธ๋ถ€ํ„ฐ ํ•ด๋‹น ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฒฝ๋กœ์— ์œ„์น˜ํ•œ ๋…ธ๋“œ
์ž์† descendant : ํ•ด๋‹น ๋…ธ๋“œ ์™€ ๊ฐ„์„ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ•˜์œ„ ๋…ธ๋“œ๋“ค
ํ˜•์ œ sibling : ๊ฐ™์€ ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ๋“ค

๋…ธ๋“œ์˜ ํฌ๊ธฐ size : ์ž๊ธฐ์™€ ๋ชจ๋“  ์ž์†๋…ธ๋“œ์˜ ์ˆ˜
๋ถ€์† ํŠธ๋ฆฌ sub tree :
๊ฒฝ์‚ฌ ํŠธ๋ฆฌ skew tree : ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์˜ค์ง ํ•œ๊ฐœ์˜ ์ž์‹๋งŒ์„ ๊ฐ€์งˆ ๋•Œ

์ด์ง„ ํŠธ๋ฆฌ

ํŠธ๋ฆฌ์ค‘์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํŠธ๋ฆฌ ํ˜•ํƒœ.
๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์ž์‹์ด ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ๋•Œ ์ด์ง„ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค.

์—„๊ฒฉํ•œ strict ์ด์ง„ ํŠธ๋ฆฌ :
๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์ง€๊ฑฐ๋‚˜ ์•„์˜ˆ ๊ฐ€์ง€์ง€ ์•Š๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ

ํฌํ™” full ์ด์ง„ ํŠธ๋ฆฌ :
๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋‘ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์ง€๊ณ , ๋ฆฌํ”„ ๋…ธ๋“œ๋“ค์ด ๋ชจ๋‘ ๊ฐ™์€ ๋ ˆ๋ฒจ์— ์žˆ๋Š” ๊ฒฝ์šฐ

์™„์ „ complete ์ด์ง„ ํŠธ๋ฆฌ :
๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๊ณ , ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋“ค์€ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ

์ด์ง„ ํŠธ๋ฆฌ์˜ ์†์„ฑ

๊ตฌ์กฐ

๋…ธ๋“œ๋Š” ์ด ์„ธ ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋ณ€์ˆ˜์™€, ๋‹ค์Œ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋“ค์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์ด ๋‘ ๊ฐœ.

์—ฐ์‚ฐ

์‚ฝ์ž…, ์‚ญ์ œ :
๊ฒ€์ƒ‰ : ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ
ํƒ์ƒ‰ : ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ถœ๋ ฅํ•˜๊ธฐ
๋†’์ด ๊ตฌํ•˜๊ธฐ
์ตœ์†Œ ๊ณตํ†ต ๋ถ€๋ชจ ์ฐพ๊ธฐ

์ ์šฉ ์‚ฌ๋ก€

์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜์‹ ํŠธ๋ฆฌ
๋ฐ์ดํ„ฐ ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ ํŠธ๋ฆฌ
์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ Binary Search Tree BST
์šฐ์„ ์ˆœ์œ„ ํ Priority Queue PQ

ํƒ์ƒ‰ Tree Traversal

ํŠธ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠธ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ํƒ์ƒ‰์ด๋ž€ ์•ž์—์„œ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๋“  ๋’ค์—์„œ๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๋“ 
๋ฐฐ์น˜๋œ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฅด๋ฉด ๋์—ˆ์ง€๋งŒ ํŠธ๋ฆฌ์—์„œ๋Š” ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ํƒ์ƒ‰ํ•  ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผํ•œ๋‹ค.

์ „์œ„ Preorder ํƒ์ƒ‰ DLR : ๋ถ€๋ชจ ๋…ธ๋“œ -> ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
์ค‘์œ„ Inorder ํƒ์ƒ‰ LDR : ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ๋ถ€๋ชจ ๋…ธ๋“œ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ
ํ›„์œ„ Postorder ํƒ์ƒ‰ LRD : ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ๋ถ€๋ชจ ๋…ธ๋“œ

๋ณด๋‹ˆ๊นŒ ์ „์œ„, ์ค‘์œ„, ํ›„์œ„๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”๊ฑด ๋ฃจํŠธ๋ฅผ ์–ธ์ œ ์ฒ˜๋ฆฌํ• ๊ป€์ง€๋ฅผ ์˜๋ฏธํ•˜๋Š”๊ฒƒ์ด๊ณ 
์„œ๋ธŒํŠธ๋ฆฌ๋“ค ๋ผ๋ฆฌ๋Š” ๋ฌด์กฐ๊ฑด ์™ผ์ชฝ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ์„ ๋‚˜์ค‘์— ์ฒ˜๋ฆฌํ•œ๋‹ค.
(?) -> ์™ผ -> (?) -> ์˜ค -> (?) ๋Œ€์ถฉ ์ด๋Ÿฐ ๋ชจ์–‘์„ธ.

๊ทธ๋ฆฌ๊ณ  ์žฌ๊ท€์ ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
๋…ธ๋“œ๋ฅผ ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ๊ฐ™์€ DLR(ํ˜น์€ LDR์ด๋‚˜ LRD)์„ ๋ฐ˜๋ณตํ•œ๋‹ค๋Š” ์˜๋ฏธ.