๋ฐ˜์‘ํ˜•
JuneBee
JuneBee
JuneBee
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (102)
    • ๐Ÿ‘” JOB (10)
      • ์ „ํ˜• ํ›„๊ธฐ (10)
    • ๐ŸŽฎ GAME (9)
      • ์ ค๋‹ค | ์™•๊ตญ์˜ ๋ˆˆ๋ฌผ ๊ฒŒ์ž„ ์ผ๊ธฐ (9)
    • ๐Ÿ““ STUDY (60)
      • JAVA (15)
      • TIL (2)
      • FASTCAMPUS (32)
      • ํ™˜๊ฒฝ์„ค์ • (2)
      • YOCTO (1)
      • OS (4)
      • ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์ธ ์•ก์…˜ (2)
    • ๐ŸŽงDAILY (6)
    • ๐Ÿ‡ฉ๐Ÿ‡ช GERMAN (17)
      • ๋Œ€ํ•™์› ์ง€์› (3)
      • ์ง€์› ํ›„๊ธฐ (11)
      • ๋…์ผ์–ด ์‹œํ—˜ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ์ผ์ƒ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํŒจ์บ ์ฑŒ๋ฆฐ์ง€
  • sort
  • Java
  • ํŒจ์ŠคํŠธ์บ ํผ์Šคํ›„๊ธฐ
  • ์ ค๋‹ค
  • ์™•๊ตญ์˜๋ˆˆ๋ฌผ
  • C/C++
  • ์„์‚ฌ
  • B1
  • SSAFY
  • ๋ฐฑํŠธ๋ž˜ํ‚น
  • bruteforce
  • ์™•๋ˆˆ
  • ์ •๋ ฌ
  • ์ง์žฅ์ธ์ธ๊ฐ•
  • telc
  • ํฌ๋ฃจ์Šค์นผ
  • ๋…์ผ
  • ๋…์ผ์œ ํ•™
  • ์ทจ์—…์ค€๋น„
  • ํ•œ๋ฒˆ์—๋๋‚ด๋Š”์ฝ”๋”ฉํ…Œ์ŠคํŠธ369JavaํŽธ์ดˆ๊ฒฉ์ฐจํŒจํ‚ค์ง€Online.
  • ์‹ธํ”ผ
  • ๋ชจํ—˜์ผ๊ธฐ
  • ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋…์ผ์–ด
  • ํ”Œ๋ ˆ์ด์ผ๊ธฐ
  • ํŒจ์ŠคํŠธ์บ ํผ์Šค
  • ์ง์žฅ์ธ์ž๊ธฐ๊ณ„๋ฐœ
  • ์œ ํ•™
  • ๊ฒŒ์ž„์ผ๊ธฐ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
JuneBee

JuneBee

Tree
๐Ÿ““ STUDY/JAVA

Tree

2022. 5. 18. 11:00
728x90
๋ฐ˜์‘ํ˜•

ํŠธ๋ฆฌ

  1. ํŠธ๋ฆฌ๋Š” ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ์›์†Œ๋“ค ๊ฐ„์— 1: n ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค
  2. ์›์†Œ๋“ค ๊ฐ„์— ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๊ณ„์ธตํ˜• ์ž๋ฃŒ๋กœ, ์ƒ์œ„ ์›์†Œ์—์„œ ํ•˜์œ„ ์›์†Œ๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ํ™•๋‹น๋˜๋Š” ํŠธ๋ฆฌ(๋‚˜๋ฌด) ๋ชจ์–‘์˜ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ง„ ์œ ํ•œ ์ง‘ํ•ฉ

๋…ธ๋“œ

ํŠธ๋ฆฌ์˜ ์›์†Œ

ํŠธ๋ฆฌ๋Š” ํ•œ๊ฐœ ์ด์ƒ์˜ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง„ ์œ ํ•œ ์ง‘ํ•ฉ์ด๋ฉฐ ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค

  1. ๋…ธ๋“œ ์ค‘ ์ตœ์ƒ์œ„ ๋…ธ๋“œ๋ฅผ root ๋ผ๊ณ  ํ•œ๋‹ค
  2. ๋‚˜๋จธ์ง€ ๋…ธ๋“œ๋“ค์€ n(≥0) ๊ฐœ์˜ ๋ถ„๋ฆฌ์ง‘ํ•ฉ์œผ๋กœ T1,...TN์œผ๋กœ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด T1,,,TN์€ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ๊ฐ€ ๋˜๋ฉฐ(์žฌ๊ท€์  ์ •์˜) ๋ฃจํŠธ์˜ ๋ถ€ ํŠธ๋ฆฌ(subtree) ๋ผ๊ณ  ํ•œ๋‹ค

์šฉ์–ด์ •๋ฆฌ

  1. ํ˜•์ œ ๋…ธ๋“œ : ๊ฐ™์€ ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ๋“ค
  2. ์กฐ์ƒ ๋…ธ๋“œ: ๊ฐ„์„ ์„ ๋”ฐ๋ผ ๋ฃจํŠธ ๋…ธ๋“œ๊นŒ์ง€ ์ด๋ฅด๋Š” ๊ฒฝ๋กœ์ด ์žˆ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋“ค
  3. ์„œ๋ธŒํŠธ๋ฆฌ: ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์„ ๋Š์—ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ํŠธ๋ฆฌ
  4. ์ž์†๋…ธ๋“œ : ์„œ๋ธŒํŠธ๋ฆฌ์— ์žˆ๋Š” ํ•˜์œ„ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๋“ค
  5. ์ฐจ์ˆ˜(degree)
    • ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜: ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ์ž์‹ ๋…ธ๋“œ์˜ ์ˆ˜(์ค„์„ ์„ธ๋ฉด ๋œ๋‹ค)
    • ํŠธ๋ฆฌ์˜ ์ฐจ์ˆ˜: ํŠธ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’ (๋…ธ๋“œ์˜ ์ฐจ์ˆ˜ ๋‹ค ์„ผ๋‹ค์Œ์— max)
    • ๋‹จ๋ง๋…ธ๋“œ(๋ฆฌํ”„ ๋…ธ๋“œ): ์ฐจ์ˆ˜๊ฐ€ 0์ธ ๋…ธ๋“œ → ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ
  6. ๋†’์ด
    • ๋…ธ๋“œ์˜ ๋†’์ด: ๋ฃจํŠธ~๋…ธ๋“œ์˜ ์„ ์˜ ๊ฐฏ์ˆ˜ → ๋ฃจํŠธ๋ถ€ํ„ฐ ํ•œ์ค„์”ฉ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๊นŠ์ด. ๋…ธ๋“œ์˜ ๋ ˆ๋ฒจ
    • ํŠธ๋ฆฌ์˜ ๋†’์ด: ํŠธ๋ฆฌ์— ์žˆ๋Š” ๋…ธ๋“œ์˜ ๋†’์ด ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’. ์ตœ๋Œ€ ๋ ˆ๋ฒจ

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

์ฐจ์ˆ˜๊ฐ€ 2์ธ ํŠธ๋ฆฌ๋กœ, ๊ฐ ๋…ธ๋“œ๊ฐ€ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ 2๊ฐœ๊นŒ์ง€๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ์ด๋‹ค

๋…ธ๋“œ

left child node ์™€ right child node๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค ๋ชจ๋“  ๋…ธ๋“œ๋“ค์ด ์ตœ๋Œ€ 2๊ฐœ์˜ ์„œ๋ธŒํŠธ๋ฆฌ๋ฅผ ๊ฐ–๋Š” ํŠน๋ณ„ํ•œ ํ˜•ํƒœ์˜ ํŠธ๋ฆฌ์ด๋‹ค

  1. ๋†’์ดi (๋ ˆ๋ฒจi)์—์„œ์˜ ์ตœ๋Œ€ ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” 2^i๊ฐœ์ด๋‹ค
  2. ๋†’์ด๊ฐ€ h์ธ ์ด์ง„ ํŠธ๋ฆฌ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋Š” (h+1)๊ฐœ๊ฐ€ ๋˜๋ฉฐ, ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” 2^(h+1)-1 ๊ฐœ๊ฐ€ ๋œ๋‹ค

์ข…๋ฅ˜

  1. ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ (Full Binary Tree) ๋ชจ๋“  ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ๊ฐ€ ํฌํ™”์ƒํƒœ๋กœ ์ฐจ ์žˆ๋Š” ์ด์ง„ํŠธ๋ฆฌ๋กœ, ๋†’์ด๊ฐ€ h ์ผ๋•Œ, ์ตœ๋Œ€์˜ ๋…ธ๋“œ ๊ฐœ์ˆ˜์ธ 2^(h+1)-1์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋ฉฐ ๋ฃจํŠธ๋ฅผ 1๋ฒˆ์œผ๋กœ ํ•˜์—ฌ 2h+1 -1๊นŒ์ง€ ์ •ํ•ด์ง„ ์œ„์น˜์— ๋Œ€ํ•œ ๋…ธ๋“œ๋ฒˆํ˜ธ๋ฅผ ๊ฐ–๋Š”๋‹ค
  2. ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ(Completed Binary Tree) ๋†’์ด๊ฐ€ h์ด๊ณ  ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ n๊ฐœ์ผ๋•Œ, ํฌํ™” ์ด์ง„ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ๋ฒˆํ˜ธ 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ๊นŒ์ง€ ๋นˆ์ž๋ฆฌ๊ฐ€ ์—†๋Š” ์ด์ง„ ํŠธ๋ฆฌ
  3. ํŽธํ–ฅ ์ด์ง„ํŠธ๋ฆฌ(Skewed Binary Tree) ๋†’์ด h์— ๋Œ€ํ•œ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ ๋…ธ๋“œ๋ฅผ๊ฐ€์ง€๋ฉด์„œ ํ•œ์ชฝ ๋ฐฉํ–ฅ์˜ ์ž์‹ ๋…ธ๋“œ ๋งŒ์„ ๊ฐ€์ง„ ์ด์ง„ ํŠธ๋ฆฌ → ์™ผ์ชฝ ํŽธํ–ฅ ์ด์ง„ํŠธ๋ฆฌ์™€ ์˜ค๋ฅธ์ชฝ ํŽธํ–ฅ ์ด์ง„ํŠธ๋ฆฌ๊ฐ€ ์žˆ๋‹ค

๋ฐฐ์—ด์„ ์• ์šฉํ•œ ์ด์ง„ ํŠธ๋ฆฌ์˜ ํ‘œํ˜„

  1. ์ด์ง„ ํŠธ๋ฆฌ์— ๊ฐ ๋…ธ๋“œ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌ
  2. ๋ฃจํŠธ์˜ ๋ฒˆํ˜ธ ==1
  3. ๋ ˆ๋ฒจ n์— ์žˆ๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•˜์—ฌ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 2n๋ถ€ํ„ฐ 2n+1 -1 ๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ์ฐจ๋ก€๋กœ ๋ถ€์—ฌ ๊ทœ์น™: ์™ผ์ชฝ: x2(%2) ์˜ค๋ฅธ์ชฝ x2 +1. ๋ ˆ๋ฒจ n์˜ ์‹œ์ž‘ ๋…ธ๋“œ : 2^n

ํŽธํ–ฅ ์ด์ง„ํŠธ๋ฆฌ

๊ฐ ๋…ธ๋“œ : 2^n -1 → ํšจ์œจ์„ฑ ์ฐฝ๋ ฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์ƒˆ ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด์˜ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•  ๊ฒฝ์šฐ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ์ด ์–ด๋ ค์›Œ์„œ ๋น„ํšจ์œจ์ ์ด๋‹ค

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ““ STUDY > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์žฌ๊ท€  (2) 2022.05.18
1์ฐจ์› ๋ฐฐ์—ด  (1) 2022.05.18
List  (0) 2022.05.18
QUEUE  (0) 2022.05.18
์บก์Аํ™”  (0) 2022.05.17
    '๐Ÿ““ STUDY/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ์žฌ๊ท€
    • 1์ฐจ์› ๋ฐฐ์—ด
    • List
    • QUEUE
    JuneBee
    JuneBee
    โ‚Šหš.๐ŸŽง๐Ÿ““ ๊ธฐ๋ก์šฉ ๋ธ”๋กœ๊ทธ ๐“‚ƒ๐Ÿ–Š

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”