직관적으로 "균형 트리"는 각 노드의 왼쪽 및 오른쪽 하위 트리에 "거의 동일한"수의 노드가 있어야하는 트리 여야합니다.
물론, 우리가 적-검은 나무 * (끝의 정의 참조)에 대해 이야기 할 때, 우리는 실제로 그것들이 높이 균형이 잡히고 그런 의미에서 균형 이 잡힌다 는 것을 의미합니다.
위의 직관을 다음과 같이 공식화한다고 가정하십시오.
정의 : 모든 노드 에 대해 불평등 인 경우 이진 트리는 -balanced이고 .
모든 에 대해 위의 명령문이 실패하는 노드가 있습니다. 및 의 왼쪽 하위 트리에있는 노드 수입니다. 을 루트 (루트 포함)로 사용 하는 트리 아래 노드 수입니다 .
나는 이 주제에 대한 일부 문헌에서 이것을 무게 균형 트리 라고 부릅니다 .
노드를 가진 이진 트리 가 -balanced (상수 ) 트리의 높이가 인 경우 멋진 검색을 유지함을 알 수 있습니다 속성.
따라서 질문은 다음과 같습니다.
일부 거기에 모든 충분히 큰 빨강 - 검정 그런 나무는 -balanced?
우리가 사용하는 Red-Black 나무의 정의 (Cormen et al의 Introduction to Algorithms) :
각 노드가 빨간색 또는 검은 색으로 표시되고
- 뿌리는 검은 색입니다
- 모든 NULL 노드는 검은 색입니다
- 노드가 빨간색이면 두 하위 노드가 모두 검은 색입니다.
- 각 노드에 대해 해당 노드에서 하위 NULL 노드까지의 모든 경로에는 동일한 수의 검은 색 노드가 있습니다.
참고 : 위 의 -balanced 정의에서 NULL 노드는 계산하지 않습니다 . (그렇지만 우리가 중요하지 않다고 생각합니다).