AVL 트리의 최대 높이는 1.44logn이고 RB 트리의 최대 높이는 2logn입니다. AVL에 요소를 삽입하면 트리의 한 지점에서 균형이 다시 잡힐 수 있습니다. 리 밸런싱이 삽입을 완료합니다. 새 리프를 삽입 한 후에는 해당 리프의 상위 항목을 루트까지 또는 두 하위 트리의 깊이가 같은 지점까지 업데이트해야합니다. k 개의 노드를 업데이트해야 할 확률은 1 / 3 ^ k입니다. 재조정은 O (1)입니다. 요소를 제거하면 둘 이상의 재조정 (나무 깊이의 최대 절반)이 포함될 수 있습니다.
RB- 트리는 이진 검색 트리로 표시되는 차수 4의 B- 트리입니다. B- 트리의 4 노드는 동등한 BST에서 두 가지 수준으로 나타납니다. 최악의 경우 트리의 모든 노드는 2 노드이며 3 노드 체인 하나만 잎사귀로 만듭니다. 그 잎은 뿌리에서 2log 떨어진 거리에 있습니다.
루트에서 삽입 지점으로 내려 가면 4 개의 노드를 2 개의 노드로 변경하여 삽입으로 리프가 포화되지 않도록해야합니다. 삽입에서 돌아와서이 모든 노드는 4 노드를 올바르게 나타내는 지 확인해야합니다. 이것은 트리에서 내려갈 수도 있습니다. 글로벌 비용은 동일합니다. 무료 점심은 없습니다! 트리에서 요소를 제거하는 순서는 같습니다.
이 모든 나무들은 노드가 높이, 무게, 색상 등에 관한 정보를 가지고 있어야합니다. Splay 나무 만이 그러한 추가 정보가 없습니다. 그러나 대부분의 사람들은 구조의 난폭성 때문에 스플레이 트리를 두려워합니다!
마지막으로 트리는 노드에 가중치 정보를 전달하여 가중치 균형을 조정할 수 있습니다. 다양한 방식이 적용될 수 있습니다. 하위 트리에 다른 하위 트리의 요소 수의 3 배 이상이 포함되어 있으면 균형을 다시 조정해야합니다. 재조정은 단일 회전 또는 이중 회전을 통해 다시 수행됩니다. 이것은 최악의 경우 2.4logn을 의미합니다. 훨씬 더 좋은 비율 인 3 대신 2 배로 벗어날 수 있지만, 여기저기서 하위 트리의 1 %보다 약간 적은 균형을 유지하는 것을 의미 할 수 있습니다. 교활한!
어떤 종류의 나무가 가장 좋습니까? 확실히 AVL. 코드를 작성하는 것이 가장 간단하고 최악의 높이를 기록 할 수 있습니다. 1000000 개의 요소로 구성된 트리의 경우 AVL은 높이에 따라 높이 29, RB 40 및 가중치 균형이 36 또는 50입니다.
임의성, 추가 비율, 삭제 비율, 검색 등의 다른 변수가 많이 있습니다.