• Tree

    2022. 5. 18.

    by. JuneBee

    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' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ์žฌ๊ท€  (0) 2022.05.18
    1์ฐจ์› ๋ฐฐ์—ด  (0) 2022.05.18
    List  (0) 2022.05.18
    QUEUE  (0) 2022.05.18
    ์บก์Šํ™”  (0) 2022.05.17

    ๋Œ“๊ธ€