Реферат: Двоичные деревья поиска

nodeParent = nodeParent.nodeParent;

End

// Возвратить родителя вершины, являющегося левым потомком своего родителя

Return nodeParent;

End

TreePrevious(node)

Begin

If (node.left != NIL) Then

// Если левое поддерево не пусто, то возвратить

// вершину из левого поддерева с максимальным значением ключа

Return TreeMaximum(node.left);

nodeParent = node.nodeParent;

// Перебирать родителей, пока не найдём вершину, являющуюся

// правым потомком своего родителя или пока не закончатся родители

While (nodeParent != NIL) and (node == nodeParent.left) Do

Begin

node = nodeParent;

nodeParent = nodeParent.nodeParent;

End

// Возвратить родителя вершины являющегося его правым потомком

Return nodeParent;

End

Добавление вершины

Добавление вершины в ДДП сопряжено с некоторыми проблемами. После добавления ДДП должно сохранить свойство упорядоченности, а это значит, что вершину, куда попало добавлять нельзя. Поэтому, прежде чем вставлять вершину, необходимо подобрать для неё подходящее место, то есть такое место, после вставки в которое, дерево сохранит своё свойство упорядоченности. Говоря другими словами, нам нужно место после вершины с наибольшим ключом из всех меньших данного.

TreeInsert(Tree,node)

Begin

nodeParent = NIL;

nodeTemp = T.root;

// Пока ещё есть вершины которые надо просмотреть, то

К-во Просмотров: 885
Бесплатно скачать Реферат: Двоичные деревья поиска