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

Else

del = TreeNext(node); // Иначе следующую

If (del.left != NIL) Then // Пытаемся найти хоть одного потомка

nodeTemp = del.left;

Else

nodeTemp = del.right;

// Если есть, родителем потомка делаем родителя

// удаляемой вершины (случай 2)

If (nodeTemp != NIL) Then

nodeTemp.nodeParent = del.nodeParent;

// Если удаляем корень дерева, надо указать новый корень дерева

If (del.nodeParent == NIL) Then

Tree.root = nodeTemp;

Else

Begin

// Указываем родителю удаляемой вершины качестве потомка

// потомок удаляемой вершины

If (del.nodeParent.left == del) Then

del.nodeParent.left = nodeTemp;

Else

del.nodeParent.right = nodeTemp;

End

If (del != node) Then // Если случай 3

Begin

node.key = del.key; // Скопировать ключ

{ копирование дополнительных данных }

End

Return del;

End

NIL, NULL и маленькие хитрости

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