Реферат: Двоичные деревья поиска
End
Поиск вершины с минимальным и максимальным значением ключа
Вершины с минимальным и максимальным значением ключа можно найти, пройдясь по левым (правым) указателям от корня (пока не достигнем NIL). Возвращаемое значение – это указатель на вершину с минимальным (максимальным) значением ключа.
TreeMinimum(node) Begin While (node.left != NIL) Do // Пока есть левый потомок Node = node.left; // Перейти к нему Return node; End TreeMaximum(node) Begin While (node.right != NIL) Do // Пока есть правый потомок node = node.right; // Перейти к нему Return node; End |
Нахождение следующей и предыдущей вершины в ДДП
Чтобы найти предыдущую и следующую вершину, надо снова вспомнить свойство упорядоченности. Рассмотрим это на примере функции TreeNext. Она учитывает два случая. Если правое поддерево не пусто, то вершина из правого поддерева с минимальным значением ключа и будет следующей. Если же правое поддерево пусто, тогда мы идём вверх, пока не найдём вершину, являющуюся левым потомком своего родителя. Этот родитель (если он есть) и будет следующей вершиной. Возвращаемое значение – это указатель на вершину с следующим (предыдущим) значеним ключа или NIL, если такой вершины нет.
TreeNext(node) Begin // Если правое поддерево не пусто, то возвратить // вершину с минимальным значением ключа из правого поддерева If (node.right != NIL) Then Return TreeMinimum(node.right); nodeParent = node.nodeParent; // Перебирать родителей, пока не найдена вершина, // являющаяся левым потомком своего родителя // или пока не закончатся родители. While (nodeParent != NIL) and (node == nodeParent.right) Do Begin К-во Просмотров: 886
Бесплатно скачать Реферат: Двоичные деревья поиска
|