Red Black Tree
λ€μκ³Ό κ°μ μ±μ§μ λ§μ‘±νλ μ΄μ§ κ²μ νΈλ¦¬
- λͺ¨λ λ Έλλ λ λλ λΈλ
- 루νΈλ λΈλ
- 리ν(NIL)λ λΈλ
- λ λ λ Έλμ μμμ λͺ¨λ λΈλ
- ν λ Έλλ‘λΆν° κ·Έ μμμΈ λ¦¬ν λ Έλλ‘κΉμ§ κ°λ κ²½λ‘μ ν¬ν¨λ λΈλ λ Έλμ κ°μκ° κ°μ
λ λ λΈλ νΈλ¦¬λ μ΄μ§ κ²μ νΈλ¦¬λ‘μ, κ° λ Έλ λΉ ν λΉνΈμ μΆκ° λ©λͺ¨λ¦¬μ λ Έλμ μκΉ(λ λ, λΈλ)μ μ μ₯νλ€. 루νΈμμ 리νκΉμ§μ κ²½λ‘μ λνλλ λ Έλμ μμ μ νν¨μΌλ‘μ¨ κ·Έλ¬ν κ²½λ‘ μ€ μ΄λ ν κ²λ λ€λ₯Έ κ²λ³΄λ€ λ λ°° μ΄μ κΈΈμ§ μμμ 보μ₯ν μ μλ€. μ΄λ‘μ¨ κ·Όμ¬μ μΌλ‘ κ· νμ μ΄λ£¬ νΈλ¦¬ κ° λλ€.
κ²½κ³λ Έλ sentinel
κ° λ Έλλ§λ€ 리νλ Έλλ₯Ό λͺ¨λ NILλ‘ λΆμ¬μ£Όλ λμ , μ΄λ₯Ό νννλ νλμ λ Έλλ§μ μ¬μ©ν μ μλλ° μ΄λ₯Ό κ²½κ³λ Έλ(sentinel)λΌκ³ νλ€. νκΈ°λ T.nil. λ λλΈλ νΈλ¦¬μ λͺ¨λ 리νλ κ°μ μλ―Έλ₯Ό κ°μ§ μκΈ° λλ¬Έμ κ°λ₯. (λͺ¨λ λΆμ¬μ€ μλ μλ€. κ·Έλ¬λ μ μ₯곡κ°μ΄ λλΉλλ€.)
νμ λμ΄ black-height
ν λ Έλμμ 리νκΉμ§μ κ²½λ‘μ μλ νμ λ Έλμ κ°μλ₯Ό λ§νλ€. μκΈ° μμ μ μ μΈνλ€. λ λλΈλ νΉμ±μ 5λ²μ§Έ 쑰건 λλ¬Έμ 루νΈμμ 리νλ‘ λ΄λ €κ°λ λͺ¨λ κ²½λ‘μ black-height(bh)λ κ°λ€. νΈλ¦¬μ bhλ 루νΈμ bhμ λμΌνλ€.
μ μ’μκ°?
nκ°μ λ΄λΆ λ
Έλλ₯Ό κ°μ§λ λ λλΈλ νΈλ¦¬λ μ΅λ $2\lg(n+1)%μ λμ΄λ₯Ό κ°μ§λ€.
nκ°μ λ
Έλλ₯Ό κ°λ μΌλ° binary search treeμ λμ΄κ° nκΉμ§ κ°λ₯ν κ²κ³Ό λ¬λ¦¬, λ λλΈλ νΈλ¦¬μ λμ΄λ $2\lg(n+1)$ λ‘ μ νλλ€.
'DevLog π¨ > DataStructure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DevLog][DS]Red Black Tree: Operation (0) | 2023.09.05 |
---|