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

End

RBTRightRotate(Tree,node)

Begin

nodeTemp = node.left;

node.left = nodeTemp.right;

If (nodeTemp.right != NIL) Then

nodeTemp.right.nodeParent = node;

nodeTemp.nodeParent = node.nodeParent;

If (node.nodeParent == NIL) Then

Tree.root = nodeTemp;

Else

Begin

If (node == node.nodeParent.right) Then

node.nodeParent.right = nodeTemp;

Else

node.nodeParent.left = nodeTemp;

End

nodeTemp.right = node;

node.nodeParent = nodeTemp;

End

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

Чтобы добавить вершину в КЧД, мы применяем процедуру TreeInsert для ДДП, красим вершину в красный цвет, а затем восстанавливаем свойства КЧД. Для этого мы перекрашиваем некоторые вершины и производим вращения.

1 RBTInsert(Tree,node)

2 Begin

3 TreeInsert(Tree,node);

4 node.color = RED;

5 While (node != Tree.root) and (node.nodeParent.color == RED) Do

6 Begin

7 If (node.nodeParent == node.nodeParent.nodeParent.left) Then

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