โ 1. 2-3 ํธ๋ฆฌ
[ ํธ๋ฆฌ ๋ถ๋ฅ ]

- Bํธ๋ฆฌ: ๋ฉํฐ์จ์ด ํ์ํธ๋ฆฌ๋ก ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ท์น์ ๋์ผํ์ง๋ง, ๋ค๋ฅธ์ ์ 2๊ฐ์ ๋ ธ๋ ์ ํ์ด ์๋ ์ฌ๋ฌ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ํด๋น m์ ๋ฉํฐ์จ์ด ํธ๋ฆฌ๋ก๋ถํฐ ๊ท ํ์ ๋ํ ํธ๋ฆฌ์. ์ด์ง ํ์ ํธ๋ฆฌ์ AVL, BB, Splay ๊ท ํ ํธ๋ฆฌ์ ๋น์ทํจ.
(1) 2-3 ํธ๋ฆฌ(2-3 tree)
- ์ฐจ์๊ฐ 2 ๋๋ 3์ธ ๋ด๋ถ ๋ ธ๋๋ฅผ ๊ฐ๋ ํ์ ํธ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค.
- ์ฝ๊ฒ๋งํด, ๋ชจ๋ ๋ ธ๋๊ฐ 2๋ ธ๋ ๋๋ 3๋ ธ๋๋ก๋ง ์ด๋ฃจ์ด์ง ๊ท ํ ํ์ ํธ๋ฆฌ์ด๋ฉฐ, ํด๋น ๊ตฌ์กฐ๋ ๋ชจ๋ ๋ ธ๋๊ฐ 2๊ฐ ๋๋ 3๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ์.
- 2-๋ ธ๋ ํน์ 3-๋ ธ๋๋ผ๋ ์ ์ฝ์ด ๋ด๋ถ ๋ ธ๋์๋ง ํด๋นํจ. ์ฆ, ์ ๋ ธ๋์ ๊ฒฝ์ฐ ์์ ๋ ธ๋๊ฐ ์์ผ๋ฏ๋ก ์ด์ฐจํผ ํด๋น์ด ์๋จ.
- ๋ชจ๋ ์ ๋ ธ๋๋ ๊ฐ์ ๋ ๋ฒจ์ ์์ด์ผ ํ๋ค๋ ์ ์ฝ๋ง ์กด์ฌํจ.
- ** ํต์ฌ์ 2-3 ํธ๋ฆฌ๋ ์ฐจ์ 3 B-ํธ๋ฆฌ์ ์์ ํ ๋์ผํ ๊ฐ๋ ์ด๋ฉฐ, ๋ ธ๋๊ฐ ๊ฐ์ง ์ ์๋ ํค ๊ฐ์๋ฅผ 1~2๊ฐ(์ฆ 2-๋ ธ๋/3-๋ ธ๋)๋ก ์ ํํด๋ ํํ์. **
(2) 2-3 ํธ๋ฆฌ - ์กฐ๊ฑด


- ๊ฒฐ๊ตญ Bํธ๋ฆฌ์ ๊ท์น์ ๋ชจ๋ ๋ฐ๋ฅด๋ฉด์ Bํธ๋ฆฌ๋ ๋ ธ๋์ ์ ํ์ ๋์ง ์๋ ๋ฐ๋ฉด 2-3 ํธ๋ฆฌ๋ ๋ ธ๋์ ๊ฐ์๋ฅผ 2๊ฐ ๋๋ 3๊ฐ๋ก ์ ํ์ ๋ ํธ๋ฆฌ๋ก ๋ณด๋ฉด ๋จ.
(3) 2-3 ํธ๋ฆฌ - ํ์
[ ๋ ธ๋ ๊ตฌ์กฐ ]



- 2๊ฐ์ key ์ 3๊ฐ์ point ๋ก ์ด๋ฃจ์ด์ง ๋ ธ๋์. ( ๋ ธ๋์ ๊ตฌ์กฐ๋ 3์ฐจ B tree ๋ก ๋ณผ ์ ์์. )
[ ํ์ ๋ก์ง ]

- ์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ก ์ ๋ฌ ํ switch ๋ฌธ์ ์กฐ๊ฑด์๋ compare(x, t) ๋ฅผ ์งํํจ.
- ํด๋น compare(x, t) ํจ์๋ ์ฐพ๊ณ ์ํ๋ ๋ฐ์ดํฐ์ ํด๋น ํฌ์ธํฐ์ lkey ์ rkey ๋ฅผ ๋น๊ตํ ๋ค ์ด๋ค ํฌ์ธํฐ๋ก ๊ฐ์ง 1~4 ์ ์ ๋ฆฌํด.
- ์ดํ, 1~4 ์ค ํ๋๊ฐ ๋ฆฌํด์ด ๋๋ฉด ํด๋น case ๋ฅผ ์ํํ๊ฒ ๋จ.
- case ๋ t ์ ํ์ฌ ์์ ๋ ธ๋ ์ค ์ด๋ค ํฌ์ธํฐ๋ก ๊ฐ์ง ์ ํด์ ๋ฆฌํด์ ํด์ค. ์ฌ๊ท์ ํธ์ถ ๋ฐฉ์์ผ๋ก ์ฐฟ์๊ฐ๋ ์๋ฆฌ์.
- ์์ ๊ฐ์ ๋ก์ง์ ํตํด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ 2-3 ํธ๋ฆฌ์์ ์ฐพ์ ์ ์์.
(4) 2-3 ํธ๋ฆฌ - ์ฝ์

- ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ์ ๋ํด์ ์ค๋ฒํค๋๊ฐ ํด ์ ๋ฐ์ ์์.
- ์ฆ, ํธ๋ฆฌ์ ํํ๋ฅผ ์จ์ ํ ์ ์ง๋ฅผ ์์ผ์ค์ผ ํ๋ ๋ ผ๋ฆฌ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์.
- ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ผ์ด๋ ๋ ํธ๋ฆฌ์ ๊ตฌ์กฐ๊ฐ ๋ง์ด ๋ฐ๋ ์ ์๋๋ฐ, ์ต์ํ์ ๋ณ๊ฒฝ๋ง์ผ๋ก ํธ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์ ์ง๋๋ ํธ๋ฆฌ๊ฐ ํจ์จ์ด ์ข์.
[ 2-3 ํธ๋ฆฌ - ์ฝ์ ์๊ณ ๋ฆฌ์ฆ ]


(5) 2-3 ํธ๋ฆฌ - ์ญ์
- 2-3 ํธ๋ฆฌ์ ์ญ์ ์์ ์ ๋ ธ๋๊ฐ ์๋ ๋ ธ๋์ ํค๋ฅผ ์ญ์ ํ๋ฉด ๊ทธ๊ณณ์ ๋ค๋ฅธ ํค๋ก ๋์ฒดํด์ผ ํจ
- ์ผ๋ฐ์ ์ผ๋ก ์ญ์ ํ ํค์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์์ ๊ฐ์ฅ ํฐ ํค ๊ฐ์ด๋ ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ์์ ๊ฐ์ฅ ์์ ํค ๊ฐ์ ์ ํํ์ฌ ๋์ฒดํจ.
- ** ํต์ฌ์ B tree ์ ์ญ์ ์ฐ์ฐ๊ณผ ์ฝ์ ์ฐ์ฐ์ด ๋์ผํ๋ค๋ ์๋ฏธ์. **
โ 2. 2-3-4 ํธ๋ฆฌ
(1) 2-3-4 ํธ๋ฆฌ - ์ ์

- 2-3 ํธ๋ฆฌ๋ฅผ ํ์ฅํ ๊ฐ๋ ์ผ๋ก ๋จ์ํ 4๊ฐ์ ์์์ ๊ฐ์ง 4-๋ ธ๋๋ฅผ ํ์ฉํ๋ ํ์ ํธ๋ฆฌ์.
(2) 2-3-4 ํธ๋ฆฌ - ์กฐ๊ฑด

- ๋จ์ํ lkey ๋ mkey ๋ณด๋ค ์์์ผ ํ๋ค. ( ์ด์ง ํ์ ํธ๋ฆฌ ๊ท์น๊ณผ ๋์ผํจ )
- ๋๋จธ์ง ๊ท์น๋ ๋ง์ฐฌ๊ฐ์ง์.
โ 3. ๋ ๋ ๋ธ๋ ํธ๋ฆฌ
(1) Red-Black Tree - ์ ์
- Red-Black Tree ๋ 2-3-4 ํธ๋ฆฌ๋ฅผ ํจ์จ์ ์ธ ๊ธฐ์ต ์ฅ์ ์ฌ์ฉ์ ์ํ์ฌ ์ด์งํํ ์ด์งํธ๋ฆฌ ํํ์ด๋ค.
- ์ด์ง ํ์ ํธ๋ฆฌ(BST)์ ํ์ข ๋ฅ์ด๋ฉฐ, ์ค์ค๋ก ๊ท ํ(blancing) ์ก๋ ํธ๋ฆฌ์ด๋ฉฐ, BST์ worst case์ ๋จ์ ์ ๊ฐ์ ํ๋ค.
- ** ์ฝ๊ฒ๋งํด, 2-3-4 ํธ๋ฆฌ์ ๊ท ํ ๋ณด์ฅ์ ๋ํ ์ฅ์ ๊ณผ ์ด์ง ํธ๋ฆฌ ๊ตฌ์กฐ์ 2๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ ๋จ์์ฑ ๋ฐ ํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ ๊ฐ์ง๋ฅผ ํ์ฉํด์ ๋ง๋ค์ด์ง ํธ๋ฆฌ๊ฐ Red-Black Tree ์ด๋ค. ( ์ด์ง ํ์ ํธ๋ฆฌ ํธํฅ ํธ๋ฆฌ๋ฅผ ๋ฐฉ์ง ํ ์ ์์. )**
- ์ฆ, 2-3-4 ๋ฉํฐ์จ์ด ๊ตฌ์กฐ๋ ๋ฒ๋ฆฌ๊ณ ๊ท ํ์ ์ ์งํ๋ ๋ ผ๋ฆฌ์ ์ธ ๊ท์น๋ง ๊ฐ์ ธ์์ ์ด๋ฅผ ์ด์ง ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ์ ์ ์ฉํ ๊ฒ์.
- 2-3-4 ํธ๋ฆฌ์ ๋ ธ๋์ ๋น ๊ณต๊ฐ์ด ์๊ธฐ๋๋ฐ ์ด๊ฑธ ์ด์ง ํ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝํจ์ผ๋ก์จ ๋น ๊ณต๊ฐ์ด ์์ด์ง๊ฒ ๋จ.
- ** Red-Black Tree ํ์ ๋ฐฉ๋ฒ์ ๋ณดํต์ ์ด์ง ํ์ ํธ๋ฆฌ์ ํ์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋์ผํจ. **
(2) Red-Black Tree - ์์ฑ
![]() |
[ Red-Black Tree ์์ฑ ] 1. ๋ชจ๋ ๋ ธ๋๋ red ํน์ black 2. ๋ฃจํธ ๋ ธ๋๋ ํญ์ black 3. ๋ชจ๋ nil(leaf) ๋ ธ๋๋ black 4. red์ ์๋ ๋ค์ ๋ชจ๋ black ( ์ฆ, red ๊ฐ ์ฐ์์ ์ผ๋ก ์กด์ฌํ ์ ์๋ค๋ ์๋ฏธ์. ) [ nil ๋ ธ๋๋? ] - ์กด์ฌํ์ง ์์์ ์๋ฏธํ๋ ๋ ธ๋์ - ์๋ ๊ฐ ์์ ๋ ์๋ ๋ฅผ nil ๋ ธ๋๋ก ํ๊ธฐ - ๊ฐ์ด ์๋ ๋ ธ๋์ ๋๋ฑํ๊ฒ ์ทจ๊ธ์ด ๋จ. - ์ฆ, Red-Black Tree ์์ ๋ชจ๋ leaf ๋ ธ๋๋ nil ๋ ธ๋๊ฐ ๋จ. |
'๐๋ฐฉ์กํต์ ๋ํ๊ต > ๐ข์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์๋ฃ๊ตฌ์กฐ] 14๊ฐ - ๊ทธ๋ํ(1) (0) | 2025.12.10 |
|---|---|
| [์๋ฃ๊ตฌ์กฐ] 12๊ฐ - ๋ฉํฐ์จ์ด ํ์ ํธ๋ฆฌ(1) (0) | 2025.11.22 |
| [์๋ฃ๊ตฌ์กฐ] 11๊ฐ - BST, Splay, AVL, BB (0) | 2025.11.20 |
| [์๋ฃ๊ตฌ์กฐ] 9๊ฐ - ํ (0) | 2025.11.13 |
| [์๋ฃ๊ตฌ์กฐ] 8๊ฐ - ์ค๋ ๋ํธ๋ฆฌ (0) | 2025.10.23 |
