ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐ŸŒณ The Story of the Upside-Down Magic Tree ๐ŸŒณ
Dev.toDev.to
Frontend

Tree Data Structure๋ฅผ ๊ฑฐ๊พธ๋กœ ๋œ ๋‚˜๋ฌด ๋น„์œ ๋กœ ์„ค๋ช…ํ•˜๋Š” ์ดˆ๋ณด์ž์šฉ ํŠœํ† ๋ฆฌ์–ผ์ž„

๐ŸŒณ The Story of the Upside-Down Magic Tree ๐ŸŒณ

Mahmoud EL-kariouny2026๋…„ 4์›” 1์ผ2๋ถ„beginner

Context

Tree Data Structure๋ฅผ ์•„์ด๋“ค์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฑฐ๊พธ๋กœ ๋œ ๋‚˜๋ฌด ๋น„์œ ๋กœ ์„ค๋ช…ํ•จ. ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋‚˜๋ฌด์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ ํŠธ๋ฆฌ์—์„œ Root๋Š” ํ•˜๋Š˜์— ์žˆ๊ณ  Leaves๋Š” ๋ฐ”๋‹ฅ์— ์žˆ์Œ.

Technical Solution

  • Tree:Root:Tree์˜ ๋งจ ์œ„์— ์œ„์น˜ํ•˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ตœ์ƒ์œ„ ๋…ธ๋“œ์ž„. ๋ชจ๋“  ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ์‹œ์ž‘์  ์—ญํ• ์„ ํ•จ
  • Node:Tree์˜ ๊ฐ€์ง€ ์œ„์— ์‚ฌ๋Š” ๊ฐ ์นœ๊ตฌ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ž„. ์ˆซ์ž, ์ด๋ฆ„, ๊ทธ๋ฆผ ๋“ฑ์„ ์ €์žฅํ•จ
  • Edge:๋…ธ๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์„ ์œผ๋กœ Parent์™€ Child ๊ด€๊ณ„๋ฅผ ํ˜•์„ฑํ•จ
  • Parent/Child:์ƒ์œ„ ๋…ธ๋“œ๊ฐ€ ํ•˜์œ„ ๋…ธ๋“œ๋ฅผ ์ดˆ๋Œ€ํ•˜๋Š” ๊ตฌ์กฐ์ž„. ๊ฐ™์€ Parent๋ฅผ ๊ฐ€์ง„ ๋…ธ๋“œ๋Š” Sibling ๊ด€๊ณ„์ž„
  • Leaf:Tree์˜ ๊ฐ€์žฅ ์•„๋ž˜ ๋์— ์žˆ์œผ๋ฉฐ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” ์ตœ์ข… ๋…ธ๋“œ์ž„

Impact

์ˆ˜์ฒœ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  Root์—์„œ Branch๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ O(log n) ์‹œ๊ฐ„์— ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•จ.

Key Takeaway

Tree Data Structure๋Š” ๊ณ„์ธต์  ๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.


๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ Tree ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ์ˆ˜๋™ ํƒ์ƒ‰ ๋Œ€๋น„ ๊ฒ€์ƒ‰ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ.

์›๋ฌธ ์ฝ๊ธฐ