Unix Man (Справочное руководство)


TSEARCH(3C) - часть 3


/* Функция распечатывает узел при первом заходе в него */ void print_node (node, order, level) char **node; VISIT order; int level; { if (order == preorder order == leaf) { (void) printf ("string = %20s, length = %d\n", (*((struct node **)node)) -> string, (*((struct node **)node)) -> length); } }

СМ. ТАКЖЕ


, , .

ДИАГНОСТИКА


Функция tsearch возвращает пустой указатель NULL, если не хватает свободного пространства для создания нового узла.

Функции tfind и tdelete возвращают пустой указатель NULL, если аргумент rootp равен NULL.

Если данные найдены, то функции tsearch и tfind возвращают указатель на них. В случае неудачного поиска функция tfind возвращает пустой указатель NULL, а функция tsearch возвращает указатель на вставленные данные.

ПРЕДОСТЕРЕЖЕНИЯ


Аргумент root функции twalk имеет на один уровень косвенной адресации меньше, чем аргумент rootp функций tsearch и tdelete.

Термины preorder, postorder и endorder могут толковаться двояко. Функция tsearch использует термины preorder, postorder и endorder для обозначения, соответственно, следующих случаев: доступ к узлу перед доступом к какому-либо его потомку, доступ к узлу после доступа к его левому потомку и перед доступом к правому потомку, доступ к узлу после доступа к обоим потомкам. Часто названные термины используются для указания порядка обхода дерева, что может привести к путанице.

ОГРАНИЧЕНИЯ


Если вызываемая функция изменяет указатель на корень дерева, то последствия будут непредсказуемы.




Начало  Назад  Вперед