let's get IT with DAVINA ๐Ÿ’ป

์ž๋ฃŒ๊ตฌ์กฐ/๋น„์„ ํ˜•๊ตฌ์กฐ/ํŠธ๋ฆฌ ๋ณธ๋ฌธ

DEV_IN/Algorithm

์ž๋ฃŒ๊ตฌ์กฐ/๋น„์„ ํ˜•๊ตฌ์กฐ/ํŠธ๋ฆฌ

๋‹ค๋นˆ์น˜์ฝ”๋“œ๐Ÿ’Ž 2023. 2. 23. 01:55

Tree ๋ž€?

  • ๋‹จ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์˜ ํ•œ ๊ตฌ์กฐ
  • ํ•˜๋‚˜์˜ ๋ฟŒ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ง€๊ฐ€ ์‚ฌ๋ฐฉ์œผ๋กœ ๋ป—์€ ํ˜•ํƒœ

tree - ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ

  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์•„๋ž˜์— ์žˆ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ์— ํ•œ ๊ฐœ์˜ ๊ฒฝ๋กœ์™€ ํ•˜๋‚˜์˜ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์—ฐ๊ฒฐ๋œ ๊ณ„์ธต์  ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ด์‹œํ‚จ ์„ ํ˜• ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์•„๋ž˜์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์„ ํ˜• ๊ตฌ์กฐ
  • ํŠธ๋ฆฌ๊ตฌ์กฐ๋Š” ๊ณ„์ธต์ ์œผ๋กœ ํ‘œํ˜„์ด ๋˜๊ณ , ์•„๋ž˜๋กœ๋งŒ ๋ป—์–ด๋‚˜๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํด(cycle)์ด ์—†์Šต๋‹ˆ๋‹ค. → ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„(Connected Graph)
์‚ฌ์ดํด
- ์‹œ์ž‘ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•ด ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์ณ ๋‹ค์‹œ ์‹œ์ž‘ ๋…ธ๋“œ๋กœ ๋Œ์•„์˜ค๋Š” ๊ฒƒ 

Tree์˜ ๊ตฌ์กฐ์™€ ํŠน์ง•

  • Root
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ์‹œ์ž‘์ ์ด ๋˜๋Š” ๋…ธ๋“œ
  • Node
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๋Š” ๋ชจ๋“  ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ
  • Parent Node (๋ถ€๋ชจ ๋…ธ๋“œ)
    • ๋‘ ๋…ธ๋“œ๊ฐ€ ์ƒํ•˜๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ๋•Œ ์ƒ๋Œ€์ ์œผ๋กœ Root์—์„œ ๊ฐ€๊นŒ์šด node
  • Child Node (์ž์‹ ๋…ธ๋“œ)
    • ๋‘ ๋…ธ๋“œ๊ฐ€ ์ƒํ•˜๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์„ ๋•Œ ์ƒ๋Œ€์ ์œผ๋กœ Root์—์„œ ๋จผ node
  • Leaf Node
    • (๋‚˜๋ฌด์˜ ์žŽ๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•˜์—ฌ) ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋ ์ง€์ ์ด๊ณ , ๋”์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” node

  • Depth (๊นŠ์ด)
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ๋Š” ๋ฃจํŠธ๋กœ๋ถ€ํ„ฐ ํ•˜์œ„ ๊ณ„์ธต์˜ ํŠน์ • ๋…ธ๋“œ๊นŒ์ง€์˜ ๊นŠ์ด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฃจํŠธ ๋…ธ๋“œ๋Š” ์ง€๋ฉด์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊นŠ์ด๊ฐ€ 0 / B,C๋Š” ๊นŠ์ด๊ฐ€ 1 / D,E,F,G์˜ ๊นŠ์ด๋Š” 2
  • Level (๋ ˆ๋ฒจ)
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๊ฐ™์€ ๊นŠ์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋ฌถ์–ด์„œ ๋ ˆ๋ฒจ์ด๋ผ๊ณ  ํ•œ๋‹ค. 
    • depth๊ฐ€ 0์ธ ๋ฃจํŠธ A์˜ ๋ ˆ๋ฒจ์€ 1 / depth๊ฐ€ 1์ธ B,C์˜ ๋ ˆ๋ฒจ์€ 2 
    • ๊ฐ™์€ ๋ ˆ๋ฒจ์— ๋‚˜๋ž€ํžˆ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ํ˜•์ œ ๋…ธ๋“œ(Sibling Node)๋ผ๊ณ  ํ•œ๋‹ค.
  • ๋†’์ด (Height)
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๋ฆฌํ”„ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฃจํŠธ๊นŒ์ง€์˜ ๋†’์ด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๋†’์ด๋Š” 0 / H,I,J,E,F์˜ ๋†’์ด๋Š” 0 / D์™€ G์˜ ๋†’์ด๋Š” 1 / B์™€ C์˜ ๋†’์ด๋Š” 2 / ๋ฃจํŠธ A์˜ ๋†’์ด๋Š” 3
  • ์„œ๋ธŒ ํŠธ๋ฆฌ (Sub Tree)
    • ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ root์—์„œ ๋ป—์–ด๋‚˜์˜ค๋Š” ํฐ ํŠธ๋ฆฌ์˜ ๋‚ด๋ถ€์—, ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ถ˜ ์ž‘์€ ํŠธ๋ฆฌ๋ฅผ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • (D, H, I)๋กœ ์ด๋ฃจ์–ด์ง„ ์ž‘์€ ํŠธ๋ฆฌ๋„ ์„œ๋ธŒ ํŠธ๋ฆฌ์ด๊ณ , (B, D, E)๋‚˜ (C, F, G, J)๋„ ์„œ๋ธŒ ํŠธ๋ฆฌ

 


Tree์˜ ์‹ค์‚ฌ์šฉ ์˜ˆ์ œ

  • ์ปดํ“จํ„ฐ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ
  • ํ•˜๋‚˜์˜ ํด๋”(๋ฃจํ”„ ํด๋”, /)์—์„œ ์‹œ์ž‘๋˜์–ด, ๊ฐ€์ง€๋ฅผ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ๋ชจ์–‘์ƒˆ 

  • ์›”๋“œ์ปต ํ† ๋„ˆ๋จผํŠธ ๋Œ€์ง„ํ‘œ
  • ๊ฐ€๊ณ„๋„ (์กฑ๋ณด)
  • ์กฐ์ง๋„ ๋“ฑ๋“ฑ

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

  • ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์ธ ๋…ธ๋“œ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ
    • ์ด 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ & ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ
  • ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜๋‰œ๋‹ค.
    • ์ • ์ด์ง„ ํŠธ๋ฆฌ(Full binary tree)
      • ๊ฐ ๋…ธ๋“œ๊ฐ€ 0๊ฐœ ํ˜น์€ 2๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
    • ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete binary tree)
      • ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๊ฐ€๋“ ์ฐจ ์žˆ์–ด์•ผ ํ•˜๊ณ ,
      • ๋งˆ์ง€๋ง‰ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋Š” ์ „๋ถ€ ์ฐจ์žˆ์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ, ์™ผ์ชฝ์ด ์ฑ„์›Œ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํฌํ™” ์ด์ง„ ํŠธ๋ฆฌ(Perfect binary tree)
      • ์ • ์ด์ง„ ํŠธ๋ฆฌ && ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ
      • ๋ชจ๋“  ๋ฆฌํ”„ ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ์ด ๋™์ผํ•˜๊ณ , 
      • ๋ชจ๋“  ๋ ˆ๋ฒจ์ด ๊ฐ€๋“ ์ฑ„์›Œ์ ธ ์žˆ๋Š” ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.


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

  • ์ด์ง„ ํƒ์ƒ‰(Binary Search) + ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List) ๋ฅผ ๊ฒฐํ•ฉํ•œ ์ด์ง„ํŠธ๋ฆฌ
  • ๊ฐ ๋…ธ๋“œ์— ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ํ‚ค(key)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฃจํŠธ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ์ž‘์€ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค๋กœ ์ด๋ค„์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฃจํŠธ๋…ธ๋“œ์˜ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ํ•ด๋‹น ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ํฐ ํ‚ค๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค๋กœ ์ด๋ค„์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ขŒ์šฐ ์„œ๋ธŒํŠธ๋ฆฌ๋„ ๋ชจ๋‘ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํ•œ๋งˆ๋””๋กœ,
๋ชจ๋“  ์™ผ์ชฝ ์ž์‹์˜ ๊ฐ’์ด ๋ฃจํŠธ๋‚˜ ๋ถ€๋ชจ๋ณด๋‹ค ์ž‘๊ณ , ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์ž์‹์˜ ๊ฐ’์ด ๋ฃจํŠธ๋‚˜ ๋ถ€๋ชจ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํŠน์ง•์ด ์žˆ๋‹ค!

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํŠน์ง•

  • ๊ธฐ์กด ์ด์ง„ ํŠธ๋ฆฌ๋ณด๋‹ค ํƒ์ƒ‰์ด ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ 
  • ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋†’์ด๊ฐ€ h(height)๋ผ๋ฉด, o(h)์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ํšจ์œจ์ ์ธ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅ
<์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰ ๊ณผ์ •>
1. ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค์™€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด๋ผ๋ฉด ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
2. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
3. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ๋ฃจํŠธ ๋…ธ๋“œ์˜ ํ‚ค๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โ–ถ ์ด ๊ณผ์ •์„ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ฐ’์„ ์ฐพ์ง€ ๋ชปํ•œ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ์—ฐ์‚ฐ์„ ์ข…๋ฃŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํƒ์ƒ‰ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์ตœ๋Œ€ ํŠธ๋ฆฌ์˜ ๋†’์ด(h)๋งŒํผ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ
  • ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๋…ธ๋“œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์กฐํšŒํ•  ๋•Œ์˜ ์ˆœ์„œ๋Š” ํ•ญ์ƒ ์™ผ์ชฝ→์˜ค๋ฅธ์ชฝ
์ˆœํšŒ ๋ฐฉ์‹์„ ๋‚˜๋ˆ„๋Š” ์ด์œ 
์ผ์ • ์กฐ๊ฑด์— ์˜ํ•ด ์„ค๊ณ„๋œ ํŠธ๋ฆฌ๊ตฌ์กฐ๋Š” ์ž์‹ ๋…ธ๋“œ์— ๋Œ€ํ•œ ์กฐ๊ฑด์ด ๋ช…ํ™•ํ•˜๋‹ค๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํŠธ๋ฆฌ ๊ตฌ์กฐ ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•  ๋• ์•„๋‹ˆ๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ผ์ •ํ•œ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๊ณ , ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด์„œ๋„ ์ˆœํšŒ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •์˜๋Š” ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋ฆฌ ์ˆœํšŒ์˜ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๐Ÿ”ฝ

์ „์œ„ ์ˆœํšŒ (preorder traverse)

  • Root → Left → Right

์ „์œ„ ์ˆœํšŒ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๋Š” ๋…ธ๋“œ๋Š” ๋ฃจํŠธ
๋ฃจํŠธ์—์„œ ์‹œ์ž‘ํ•ด ์™ผ์ชฝ์˜ ๋…ธ๋“œ๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‘˜๋Ÿฌ๋ณธ ๋’ค, 
์™ผ์ชฝ์˜ ๋…ธ๋“œ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ์˜ค๋ฅธ์ชฝ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์ œ์ผ ๋จผ์ € ๋ฐฉ๋ฌธ๋˜๋Š” ์ˆœํšŒ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
์ „์œ„ ์ˆœํšŒ๋Š” ์ฃผ๋กœ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ค‘์œ„ ์ˆœํšŒ (inorder traverse)

  • Left → Root → Right

์ค‘์œ„ ์ˆœํšŒ๋Š” ๋ฃจํŠธ๋ฅผ ๊ฐ€์šด๋ฐ ๋‘๊ณ  ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค.
์ œ์ผ ์™ผ์ชฝ ๋์— ์žˆ๋Š” ๋…ธ๋“œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ, 
๋ฃจํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์— ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด, ๋ฃจํŠธ๋ฅผ ๊ฑฐ์ณ, ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜์—ฌ ๋งˆ์ € ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ์„œ๋ธŒ ํŠธ๋ฆฌ์˜ ๋ฐฉ๋ฌธ ์ค‘๊ฐ„์— ๋ฐฉ๋ฌธ๋˜๋Š” ์ˆœํšŒ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
์ค‘์œ„ ์ˆœํšŒ๋Š” ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์“ฐ์ž…๋‹ˆ๋‹ค.

ํ›„์œ„ ์ˆœํšŒ (postorder traverse)

  • Left → Right → Root

ํ›„์œ„ ์ˆœํšŒ๋Š” ๋ฃจํŠธ๋ฅผ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค.
์ œ์ผ ์™ผ์ชฝ ๋์— ์žˆ๋Š” ๋…ธ๋“œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ,
๋ฃจํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•ด ์ˆœํšŒํ•œ ๋’ค, ์ œ์ผ ๋งˆ์ง€๋ง‰์— ๋ฃจํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค.
ํ›„์œ„ ์ˆœํšŒ๋Š” ํŠธ๋ฆฌ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ๋…ธ๋“œ๊ฐ€ ๋จผ์ € ์‚ญ์ œ๋˜์–ด์•ผ ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

Comments