본문 바로가기

Coding Note

[Data Structure] Red Black Tree

레드블랙트리는 이진트리 형태에 몇가지 규칙이 추가된 균형트리이다.

(AVL트리도 균형트리의 일종)


레드블랙 트리는 아래 다섯가지 규칙,

1. 모든 노드는 검정 or 빨간색을 가진다.

2. 루트노드는 검정색

3. 빨간노드의 자식은 검정노드

4. 모든 black depth는 동일

5. 단말노드는 검정색

를 만족시키면 레드블랙트리가 된다.


이렇게 구성된 레드블랙트리는, 사실 완전균형트리가 아니라 '적당히 균형잡힌' 트리가 된다.

하지만 말단노드끼리의 높이차가 두배를 넘지 않아 어느정도 탐색속도를 보장해주고 AVL트리처럼 너무 꽉짜여져 있지 않아서 삽입에도 비용이 그리 부담스럽지 않다.


아래는 레드블랙 트리 이용 예.

'Coding Note' 카테고리의 다른 글

[C++] 다차원 배열 파라미터  (0) 2012.06.12
[C++] C++ callback and delegate  (0) 2012.05.27
[Lua] table  (0) 2012.03.19
[Lua] 함수  (0) 2012.03.19
[Lua] first  (1) 2012.03.18