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

// Это нужно для поиска по не существующим потомкам

If (node == NIL) Then

Return node;

// Если нашли, то возвращаем указатель на найденную вершину.

If (node.key == key) Then

Return node;

// Если ключ найденной вершины больше того, который мы ищем

If (node.key > key) Then

// То искать в левом поддереве

Return TreeSearch(node.left, key);

Else

// Иначе в правом поддереве

Return TreeSearch(node.right, key);

End

ПРИМЕЧАНИЕ

В прилагаемом исходном коде, написанном на паскале-подобном языке, все параметры передаются по значению. nodeParent, nodeTemp и node – это указатели на вершины, а Tree – само дерево, имеющее поле root, указатель на корень дерева.

Итеративно:

TreeSearch(node,key)

Begin

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

//(мы просматриваем не все, но несколько) и пока мы не нашли

While (node != NIL) and (node.key != key) Do

Begin

// Если ключ найденногй вершины больше того который мы ищем

If (node.key > key) Then

node = node.left; // То искать в левом поддереве

Else

node = node.right; // А иначе в правом поддереве

End

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