Реферат: Двоичные деревья поиска
// Это нужно для поиска по не существующим потомкам
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
Бесплатно скачать Реферат: Двоичные деревья поиска
|