- ๊ท ํ ์ด์ง ๊ฒ์ ํธ๋ฆฌ
- ์ต์ ์ ๊ฒฝ์ฐ์๋ ์ด์ง ํธ๋ฆฌ์ ๊ท ํ์ด ์ ๋ง๋๋ก ์ ์งํด์ ์์ ๋ค์ด ํญ์ O(logn)์๊ฐ์ ๋ณด์ฅํจ
AVL ํธ๋ฆฌ
- ์๊ฐ ๊ท ํ, ๋์ด ๊ท ํ
- ์ด๋ค ๋ ธ๋๋ ์ข์๋ธ ํธ๋ฆฌ์ ์ฐ์๋ธ ํธ๋ฆฌ์ ๋์ด ์ฐจ๊ฐ 1๋ณด๋ค ํฌ์ง ์์ ์ํ๋ก ์ ์ง๋๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ
- ํ์ ์ฐ์ฐ
- ๊ท ํ์ด ๊นจ์ง ์๋ธ ํธ๋ฆฌ ์ค ๊ฐ์ฅ ๋ฎ์ ๊ณณ์ ์๋ ๊ฒ๋ถํฐ ์์ ์ ์์ํจ
- ๋จ์ผํ์ , ์ด์คํ์
AVLํธ๋ฆฌ ์ด์
- ์ฝ์
๊ณผ ์ญ์
- ์๋ก์ด ๋ ธ๋๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ๋ ธ๋๋ฅผ ์ญ์ ํ ๋, AVL ํธ๋ฆฌ๋ ๋ถ๊ท ํ๋๋ฅผ ์ฒดํฌํ๊ณ ํ์์ ๋ฐ๋ผ ํ์ ์ ์ํํ์ฌ ๊ท ํ์ ์ฌ์กฐ์
- ๋ถ๊ท ํ๋ ์ฒดํฌ
- ๊ฐ ๋ ธ๋๋ ์์ ์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์์ ํธ๋ฆฌ์ ๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ๊ท ํ๋๋ฅผ ๊ณ์ฐ. ๋ถ๊ท ํ๋๊ฐ 1์ ์ด๊ณผํ๋ฉด ๊ท ํ์ด ๊นจ์ง ๊ฒ์ผ๋ก ๊ฐ์ฃผ
- ํ์ ์ ํ
- ๊ท ํ์ด ๊นจ์ง ๊ฒฝ์ฐ, LL, RR, LR, RL ๋ค ๊ฐ์ง ์ ํ์ ๋ถ๊ท ํ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ํ์ ์ ์ ์ฉ
๋ ๋-๋ธ๋ ํธ๋ฆฌ
- ๋ ๋์ ๋ธ๋ ๋ ์์ ์ฌ์ฉํด์ ๊ท ํ์ ๋ง์ถค
- ์์์ด ์์ผ๋ฉด ํด๋น ๋งํฌ๋ฅผ null๊ฐ์ผ๋ก ๋๊ณ , ์ด null ๊ฐ๊ฐ์ ๋ฆฌํ ๋ ธ๋๋ก ๊ฐ์ฃผํจ
- RBํน์ฑ
- ๋ฃจํธ๋ ๋ธ๋
- ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๋ธ๋
- ๋ ๋ ๋ ธ๋ 2๊ฐ๊ฐ ์ฐ์์ผ๋ก ์ถ์ฐํ ์ ์์
- ๋ฃจํธ ๋ ธ๋์์ ์์์ ๋ฆฌํ ๋ ธ๋์ ์ด๋ฅด๋ ๊ฒฝ๋ก์์ ๋ง๋๋ ๋ธ๋ ๋ ธ๋์ ์๋ ๊ฐ์
- ๋ ๋-๋ธ๋ ํธ๋ฆฌ์ ์๋ ๋ชจ๋ ๊ฐ์
๋ ๋-๋ธ๋ ํธ๋ฆฌ์ ์ด์
- ์ฝ์
๊ณผ ์ญ์
- ์๋ก์ด ๋ ธ๋๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ๋ ธ๋๋ฅผ ์ญ์ ํ ๋, ๋ ๋-๋ธ๋ ํธ๋ฆฌ๋ ์์ ๊ท์น์ ์ ์งํ๊ธฐ ์ํด ํธ๋ฆฌ๋ฅผ ์ฌ์กฐ์ (์ด ๊ณผ์ ์์ ์์ ๋ณ๊ฒฝ๊ณผ ํ์ ์ด ์ผ์ด๋ ์ ์์)
- ํ์ ์ฐ์ฐ
- ํธ๋ฆฌ์ ๊ท ํ์ ์ ์งํ๊ธฐ ์ํด ๋จ์ผ ํ์ (Single Rotation)๊ณผ ์ด์ค ํ์ (Double Rotation)์ ์ฌ์ฉ
- ์์ ๋ณ๊ฒฝ
- ์ฝ์ ์ด๋ ์ญ์ ๊ณผ์ ์์ ๋ ธ๋์ ์์์ ๋ณ๊ฒฝํ์ฌ ํธ๋ฆฌ์ ๊ท ํ์ ์ฌ์กฐ์
AVLํธ๋ฆฌ์ RBํธ๋ฆฌ์ ๊ท ํ ์กฐ์ ๋ฉ์ปค๋์ฆ ์ฐจ์ด
AVL ํธ๋ฆฌ
๊ท ํ ์ฌ์กฐ์ : ํ์ (๋จ์ผ, ์ด์ค)์ ์ฌ์ฉํ์ฌ ๋์ด ๊ท ํ ์ ์ง
๋ ๋-๋ธ๋ ํธ๋ฆฌ
๊ท ํ ์ฌ์กฐ์ : ์์ ๋ณ๊ฒฝ๊ณผ ํ์ ์ ํตํด ๊ท ํ ์ ์ง
B-ํธ๋ฆฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ์ผ ์์คํ ๊ณผ ๊ฐ์ด ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํจ์จ์ ์ธ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ์ ์ผ์ข
- ๋ฉํฐ-์จ์ด ํธ๋ฆฌ
- B-ํธ๋ฆฌ๋ ์ด์ง์ด ์๋ ๋ฉํฐ-์จ์ด(๋ค์ค ๊ฒฝ๋ก) ํธ๋ฆฌ
- ๊ฐ ๋ ธ๋๋ ์ฌ๋ฌ ๊ฐ์ ์์์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ์ด๋ ํธ๋ฆฌ์ ๊น์ด๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ ์ค
- ๊ท ํ ์ ์ง
- ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๊ฐ์ ๋ ๋ฒจ์ ์์
- ๋
ธ๋ ๋ด ๋ฐ์ดํฐ ์ ๋ ฌ
- ๊ฐ ๋ ธ๋๋ ํค(key)์ ๋ฐฐ์ด๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด ํค๋ค์ ์ ๋ ฌ๋ ์์๋ก ์ ์ง๋จ
- ๋ฐ์ดํฐ ์ก์ธ์ค ์ต์ ํ
- B-ํธ๋ฆฌ๋ ๋์คํฌ ์ ์ถ๋ ฅ๊ณผ ๊ฐ์ ๋น์ฉ์ด ๋์ ์์ ์ ์๋ฅผ ์ต์ํํ๋๋ก ์ค๊ณ๋์์
B-ํธ๋ฆฌ์ ์ด์
- ๋
ธ๋ ๊ตฌ์กฐ
- ๊ฐ ๋ ธ๋๋ ์ฌ๋ฌ ๊ฐ์ ํค๋ฅผ ํฌํจํ๊ณ , ๊ฐ ํค ์ฌ์ด์ ์์ ๋ ธ๋์ ๋ํ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง
- ์ฝ์
๊ณผ ์ญ์
- ์ฝ์ ๋๋ ์ญ์ ์์ ํธ๋ฆฌ๋ ์๋์ผ๋ก ์ฌ๊ตฌ์ฑ๋์ด ๊ท ํ์ ์ ์งํจ.
- ์ข ์ข ๋ ธ๋์ ๋ถํ (splitting) ๋๋ ๋ณํฉ(merging)์ ํฌํจํจ
- ์ค๋ฒํ๋ก์ฐ์ ์ธ๋ํ๋ก์ฐ ์ฒ๋ฆฌ
- ๋ ธ๋์ ๋๋ฌด ๋ง์ ํค๊ฐ ์ฝ์ ๋์ด ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ฉด, ๋ ธ๋๋ ๋ ๊ฐ์ ๋ ธ๋๋ก ๋ถํ ๋จ
- ๋ฐ๋๋ก ๋๋ฌด ์ ์ ํค๋ก ์ธํด ์ธ๋ํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ฉด, ๋ ธ๋๋ ์ธ์ ํ ๋ ธ๋์ ๋ณํฉ๋ ์ ์์
AVL ํธ๋ฆฌ
๊ท ํ ์กฐ๊ฑด: ๋ ธ๋์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์์ ๊ฐ ๋์ด ์ฐจ์ด ์ต๋ 1.
๊ท ํ ์ฌ์กฐ์ : ํ์ (๋จ์ผ, ์ด์ค)์ ์ฌ์ฉํ์ฌ ๋์ด ๊ท ํ ์ ์ง.
์ ์ฉ: ํ์ ์ค์ฌ, ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ์ดํฐ์ ์ ํฉ.
๋ ๋-๋ธ๋ ํธ๋ฆฌ
๊ท ํ ์กฐ๊ฑด: ํน์ ์์ ๊ท์น์ ๋ฐ๋ผ ๋ ธ๋ ์์ ๊ด๋ฆฌ.
๊ท ํ ์ฌ์กฐ์ : ์์ ๋ณ๊ฒฝ๊ณผ ํ์ ์ ํตํด ๊ท ํ ์ ์ง.
์ ์ฉ: ์ฝ์ , ์ญ์ ๊ฐ ๋น๋ฒํ ์๋๋ฆฌ์ค์ ์ ํฉ.
B-ํธ๋ฆฌ
๊ท ํ ์กฐ๊ฑด: ๊ฐ ๋ ธ๋๊ฐ ์ฌ๋ฌ ํค๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๊ฐ์ ๋ ๋ฒจ์ ์์น.
๊ท ํ ์ฌ์กฐ์ : ๋ ธ๋ ๋ถํ ๋ฐ ๋ณํฉ์ ํตํ ๊ท ํ ์ ์ง.
์ ์ฉ: ๋๊ท๋ชจ, ๋์คํฌ ๊ธฐ๋ฐ ๋ฐ์ดํฐ์ ์ ์ต์ ํ.
์ฐธ๊ณ ์๋ฃ : ใ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์๋ฃ๊ตฌ์กฐ with ์๋ฐใ
'๐๏ธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ,์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํด์ ํ ์ด๋ธ] ์ถฉ๋ ํด๊ฒฐ (2) | 2023.12.08 |
---|---|
[ํด์ ํ ์ด๋ธ] ํด์ ํ ์ด๋ธ, ํด์ ํจ์ (0) | 2023.11.30 |
[ํธ๋ฆฌ] ์์ธ๊ณผ ์ด์ง๊ฒ์ํธ๋ฆฌ (1) | 2023.11.27 |
[์ ๋ ฌ] ํน์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ(๊ณ์/๊ธฐ์/๋ฒํท) (1) | 2023.11.21 |
[์ ๋ ฌ] ๊ณ ๊ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ(๋ณํฉ/ํต/ํ/์ ) (1) | 2023.11.21 |