728x90

๐ŸฆŒ ํฌ๋ฆฌ์Šค๋งˆ์Šค D-10 ๊ธฐ๋…์œผ๋กœ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž ๐ŸŽ…๐Ÿป ๋ฌผ๋ก  ํฌ๋ฆฌ์Šค๋งˆ์Šค ํŠธ๋ฆฌ ๋ง๊ณ  ,,  ์ž๋ฃŒ๊ตฌ์กฐ ํŠธ๋ฆฌ์ด๋‹ค ^_^ ํŠธ๋ฆฌ๋Š” ๊ฐ€๊ณ„๋„์™€ ๊ฐ™์€ ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ N์ผ ๋•Œ, ์ „์ฒด ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋Š” N-1์ด๋‹ค. ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํŠธ๋ฆฌ ๋‚ด์— ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ๊ณ , ๊ทธ ํ•˜์œ„ ํŠธ๋ฆฌ ์•ˆ์—๋Š” ๋˜ ๋‹ค๋ฅธ ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์žฌ๊ท€์  ์ž๋ฃŒ๊ตฌ์กฐ์ด๊ธฐ๋„ ํ•˜๋‹ค.

๐ŸฆŒ ํฌ๋ฆฌ์Šค๋งˆ์Šค D-10 ๊ธฐ๋…์œผ๋กœ ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž ๐ŸŽ…๐Ÿป 

๋ฌผ๋ก  ํฌ๋ฆฌ์Šค๋งˆ์Šค ํŠธ๋ฆฌ ๋ง๊ณ  ,,  ์ž๋ฃŒ๊ตฌ์กฐ ํŠธ๋ฆฌ์ด๋‹ค ^_^ 

 

๋ชฉ์ฐจ

  1. ํŠธ๋ฆฌ (Tree)๋ž€ ?
  2. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Tree)
  3. ํŠธ๋ฆฌ์˜ ์ˆœํšŒ (Tree Travelsal)

 


ํŠธ๋ฆฌ (Tree)๋ž€ ?

ํŠธ๋ฆฌ๋Š” ๊ฐ€๊ณ„๋„์™€ ๊ฐ™์€ ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ N์ผ ๋•Œ, ์ „์ฒด ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋Š” N-1์ด๋‹ค. ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํŠธ๋ฆฌ ๋‚ด์— ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ๊ณ , ๊ทธ ํ•˜์œ„ ํŠธ๋ฆฌ ์•ˆ์—๋Š” ๋˜ ๋‹ค๋ฅธ ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ๋Š” ์žฌ๊ท€์  ์ž๋ฃŒ๊ตฌ์กฐ์ด๊ธฐ๋„ ํ•˜๋‹ค. ์ปดํ“จํ„ฐ์˜ directory ๊ตฌ์กฐ๊ฐ€ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค.

 

โ„๏ธ ๋ฃจํŠธ ๋…ธ๋“œ (root node) : ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ์ตœ์ƒ์œ„ ๋…ธ๋“œ

โ„๏ธ ๋‹จ๋ง ๋…ธ๋“œ (leaf node) : ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ

โ„๏ธ ํฌ๊ธฐ (size) : ํŠธ๋ฆฌ์— ํฌํ•จ๋œ ๋ชจ๋“  ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜

โ„๏ธ ๊นŠ์ด (depth) : ๋ฃจํŠธ ๋…ธ๋“œ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ (= ๊ฐ„์„ ์˜ ์ˆ˜)

โ„๏ธ ๋†’์ด (height) : ๊นŠ์ด ์ค‘ ์ตœ๋Œ“๊ฐ’

โ„๏ธ ์ฐจ์ˆ˜ (degree) : ๊ฐ ๋…ธ๋“œ์˜ (์ž์‹ ๋ฐฉํ–ฅ) ๊ฐ„์„  ๊ฐœ์ˆ˜ (= ํ•˜์œ„ ํŠธ๋ฆฌ ๊ฐœ์ˆ˜)

 

 


์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Tree)

์ด์ง„ ํƒ์ƒ‰์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋œ ํšจ์œจ์ ์ธ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…์ด๋‹ค.

 

๐Ÿ”” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํŠน์ง• : ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ < ๋ถ€๋ชจ ๋…ธ๋“œ < ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ

 

 

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๐Ÿ”” ๋ฃจํŠธ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜์—ฌ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•œ๋‹ค.

๐Ÿ”” ํ˜„์žฌ ๋…ธ๋“œ์™€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.

๐Ÿ”” ์›์†Œ๋ฅผ ์ฐพ์•˜๋‹ค๋ฉด ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•œ๋‹ค.

 

 


ํŠธ๋ฆฌ์˜ ์ˆœํšŒ (Tree Traversal)

ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์— ํฌํ•จ๋œ ๋…ธ๋“œ๋ฅผ ํŠน์ •ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ํŠธ๋ฆฌ ์ˆœํšŒ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๐ŸŽ„ ์ „์œ„ ์ˆœํšŒ (pre-order traverse) : ๋ฃจํŠธ๋ฅผ ๋จผ์ € ๋ฐฉ๋ฌธํ•œ๋‹ค.

    • ๋…ธ๋“œ - ์™ผ์ชฝ ์ž์‹ - ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ˆœ

๐ŸŽ„ ์ค‘์œ„ ์ˆœํšŒ (in-order traverse) : ์™ผ์ชฝ ์ž์‹์„ ๋ฐฉ๋ฌธํ•œ ๋’ค์— ๋ฃจํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค.

    • ์™ผ์ชฝ ์ž์‹ - ๋…ธ๋“œ - ์˜ค๋ฅธ์ชฝ ์ž์‹ ์ˆœ

๐ŸŽ„ ํ›„์œ„ ์ˆœํšŒ (post- order traverse) : ์˜ค๋ฅธ์ชฝ ์ž์‹์„ ๋ฐฉ๋ฌธํ•œ ๋’ค์— ๋ฃจํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•œ๋‹ค.

    • ์™ผ์ชฝ ์ž์‹, ์˜ค๋ฅธ์ชฝ ์ž์‹, ๋…ธ๋“œ ์ˆœ

 

 

์ „์œ„ ์ˆœํšŒ : A - B - D - E - C - F - G

์ค‘์œ„ ์ˆœํšŒ : D - B - E - A - F - C - G

ํ›„์œ„ ์ˆœํšŒ : D - E - B - F - G - C - A

 

 

 


Reference

 

[์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ (Tree)

๋ชฉ์ฐจ ํŠธ๋ฆฌ (Tree) ํŠธ๋ฆฌ (Tree)๋ž€ ๋…ธ๋“œ๋“ค์ด ๋‚˜๋ฌด ๊ฐ€์ง€์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋œ ๋น„์„ ํ˜• ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ฌด๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์–ด ๋†“์€ ๋ชจ์–‘๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ๋˜ํ•œ ํŠธ๋ฆฌ ๋‚ด์— ๋‹ค๋ฅธ ํ•˜

yoongrammer.tistory.com

 

728x90

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

๋ฑ (Deque)  (0) 2022.07.28
ํ (Queue)  (0) 2022.07.25
์Šคํƒ (Stack)  (0) 2022.07.23

+ Recent posts