[Data Structure] Tree

Goghยท2023๋…„ 1์›” 2์ผ

Data Structure

๋ชฉ๋ก ๋ณด๊ธฐ
2/5

๐ŸŽฏ ๋ชฉํ‘œ :ย  Tree ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ดํ•ด

๐Ÿ“’ Tree

๋น„ ์„ ํ˜• ๊ตฌ์กฐ๋กœ ๋‚˜๋ฌด๋ฅผ ๊ฑฐ๊พธ๋กœ ๊ทธ๋ฆฐ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ.

photo

๐Ÿ“Œ Tree ๊ตฌ์กฐ์™€ ํŠน์ง•

  • Root ๋ผ๋Š” ํ•˜๋‚˜์˜ ์ตœ์ƒ์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ์ž‘์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ„์„ (=๊ฐ€์ง€ Edge)์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.
  • ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ Node๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด ์ ธ์žˆ๋‹ค.
  • ๊นŠ์ด(Depth)๋Š” ๋ฃจํŠธ๋กœ ๋ถ€ํ„ฐ ํ•˜์œ„ ๊ณ„์ธต์˜ ํŠน์ • ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ธธ์ด๋ฅผ ํ‘œํ˜„ ํ•œ๋‹ค.
  • ๋ ˆ๋ฒจ(Level)์€ ๊ฐ™์€ ๊ณ„์ธต์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋ฌถ์€ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฐ™์€ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋ฅผ ํ˜•์ œ ๋…ธ๋“œ๋ผ ํ• ์ˆ˜ ์žˆ๋‹ค.
  • ๋†’์ด(Height)๋Š” ๋ฆฌํ”„๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฃจํŠธ๊นŒ์ง€์˜ ๊ธธ์ด๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
  • ์„œ๋ธŒ ํŠธ๋ฆฌ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์ž‘์€ ํŠธ๋ฆฌ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

๐Ÿ“’ Binary Tree / Binary Search Tree

์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ์™€ ์ด์ง„ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ํƒ์ƒ‰์„ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•œ๋‹ค.


๐Ÿ“Œ ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)

  • ๊ฐ ๋…ธ๋“œ๊ฐ€ 0๊ฐœ์˜ ๋…ธ๋“œ ์ด์ƒ ์™ผ์ชฝ ์ž์‹๊ณผ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ ์ตœ๋Œ€ ๋‘˜์„ ๊ฐ–๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋‹ค.
  • ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ(Complete binary tree)

photo

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

๐Ÿ“Œ ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰

  • ๋ฃจํŠธ์—์„œ ์™ผ์ชฝ์˜ ์ž์‹ ๋…ธ๋“œ๋กœ ๋ถ€ํ„ฐ ๊ฐ ๋ ˆ๋ฒจ๋ณ„ ํƒ์ƒ‰์„ํ•œ๋‹ค.

photo

  • ๊นŠ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋ฅผ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ›„ ๋‹ค์Œ ๊นŠ์ด ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.

photo

๐Ÿ‘‰ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์—์„œ์˜ ์ˆœํšŒ

  • ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์„ ํ• ๋•Œ ์–ธ์ œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉฐ ์ˆœํšŒ๋ฅผ ํ• ์ง€์— ๋Œ€ํ•œ ์„ธ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

photo

๐Ÿ‘‰ ์ „์œ„ ์ˆœํšŒ

  • ๋ฃจํŠธ -> ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ˆœํšŒ.

๐Ÿ‘‰ ์ค‘์œ„ ์ˆœํšŒ

  • ์™ผ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ -> ๋ฃจํŠธ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒ ํŠธ๋ฆฌ ์ˆœ์„œ๋กœ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ˆœํšŒ.

๐Ÿ‘‰ ํ›„ํšŒ ์ˆœํšŒ

  • ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ -> ๋ฃจํŠธ ์ˆœ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ˆœํšŒ

๐Ÿ“Œ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ

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

photo


๐Ÿ“Œย ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๊ตฌํ˜„

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

0๊ฐœ์˜ ๋Œ“๊ธ€