Нелинейные структуры данных
[Оглавление] [<< страница] [>>страница]


   8.1. Сбалансированные АВЛ-деревья поиска
 

Требования к сбалансированности в АВЛ - деревьях менее жесткие, чем в идеально сбалансированных деревьях. АВЛ - деревом называется такое дерево, у которого высота поддеревьев для каждой вершины различается не более чем на 1. Максимальная высота АВЛ -дерева с n вершинами не превосходит 1,44*log2(n+ 1) - 1,33, т. е. затраты на поиск не превосходят l,45*O(log2n).

Отличие АВЛ -деревьев от обычных деревьев поиска заключается в том, что при включении и удалении элементов необходимо поддерживать сбалансированность дерева в целом. Для этого в каждый узел дерева добавляется одно вспомогательное поле, содержащее информацию о равновесности поддеревьев (показатель сбалансированности узла). Его значениями могут быть: 0 - высоты правого и левого поддеревьев равны; + 1 — высота правого поддерева больше; - 1 — высота правого поддерева меньше.

При попытке добавить или удалить элемент в поддереве с показателем сбалансированности, отличным от нуля, дерево может стать несбалансированным, и потребуется операция балансировки.

[Оглавление] [<<страница] [>>страница] [В начало ]