14.4.2. Функции управления деревьями

14.4.2. Функции управления деревьями

Только что описанные операции соответствуют следующим функциям:

#include <search.h> /* XSI */

void *tsearch(const void *key, void **rootp,

int (*compare)(const void*, const void*));

void *tfind(const void *key, const void **rootp,

int (*compare)(const void*, const void*));

void *tdelete(const void *key, void **rootp,

int (*compare)(const void*, const void*));

typedef enum { preorder, postorder, endorder, leaf } VISIT;

void twalk(const void *root,

void (*action)(const void *nodep, const VISIT which,

const int depth));

void tdestroy(void *root, void (*free_node)(void *nodep)); /* GLIBC*/

Эти функции были впервые определены для System V, а теперь формально стандартизованы POSIX. Они следуют структуре других, которые мы видели в разделе 6.2 «Функции сортировки и поиска»: использование указателей void* для указания на произвольные типы данных и предоставляемые пользователем функции сравнения для определения порядка. Как и для qsort() и bsearch(), функции сравнения должны возвращать отрицательное/нулевое/положительное значение, когда key сравнивается со значением в вершине дерева.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Дополнительные функции управления потоками

Из книги автора

Дополнительные функции управления потоками Несмотря на то что функций управления потоками, которые мы выше обсуждали, вполне достаточно для большинства случаев, в том числе и для примеров, приведенных в этой книге, в Windows XP и Windows Server 2003 были введены две дополнительные


Функции управления выводом

Из книги автора

Функции управления выводом ob_startВключение буферизации вывода.Синтаксис:void ob_start([string output_callback])После вызова этой функции включается буферизация вывода и, пока она активна, никакие из выводящихся данных не будут посланы браузеру, а будут сохраняться во внутреннем буфере


3.5. Функции управления байтами

Из книги автора

3.5. Функции управления байтами Существует две группы функций, работающих с многобайтовыми полями без преобразования данных и без интерпретации их в качестве строк языка С с завершающим нулем. Они необходимы нам при обработке структур адресов сокетов, поскольку такие


Проект участка с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe

Из книги автора

Проект участка с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe Рассмотрим пример создания проекта с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe. Добавим растительность – деревья и кустарники в проект, созданный в программе.Откройте программу 3D


2. Операции над деревьями

Из книги автора

2. Операции над деревьями Далее будем рассматривать все операции применительно к бинарным деревьям.I. Построение дереваПриведем алгоритм построения упорядоченного дерева.1. Если дерево пусто, то данные переносятся в корень дерева. Если же дерево не пусто, то


8.1. Панель управления нужна для управления

Из книги автора

8.1. Панель управления нужна для управления В любом сложном устройстве всегда есть пульт – набор кнопок, рычажков, сенсорных датчиков, штурвалов… словом, приспособлений, с помощью которых можно этим сложным устройством управлять.Есть такой «пульт» и в Vista. Он называется


HTML-элементы управления и серверные элементы управления

Из книги автора

HTML-элементы управления и серверные элементы управления Еще одной новинкой технологии ASP.NET является использование серверных элементов управления. Серверный элемент управления кодируется в Web-странице, а все его события и свойства обрабатываются Web-сервером. Серверные


14.8. Работа с файлами, каталогами и деревьями

Из книги автора

14.8. Работа с файлами, каталогами и деревьями При выполнении рутинных задач приходится много работать с файлами и каталогами, в том числе с целыми иерархиями каталогов. Немало материала на эту тему вошло в главу 4, но кое-какие важные моменты мы хотим осветить


Простейшие функции управления "связками ключей".

Из книги автора

Простейшие функции управления "связками ключей". Кроме того, PGP 2 реализует простейшие функции управления "связками ключей", включая добавление и удаление ключа со связки, возможность гибкой настройки параметров, а также встроенные функции сжатия исходного открытого


9.2. Представление множеств двоичными деревьями

Из книги автора

9.2. Представление множеств двоичными деревьями Списки часто применяют для представления множеств. Такое использование списков имеет тот недостаток, что проверка принадлежности элемента множеству оказывается довольно неэффективной. Обычно предикат принадлежит( X, L)


Глава 10 Усовершенствованные методы представления множеств деревьями

Из книги автора

Глава 10 Усовершенствованные методы представления множеств деревьями В данной главе мы рассмотрим усовершенствованные методы представления множеств при помощи деревьев. Основная идея состоит в том, чтобы поддерживать сбалансированности или приближенную


Панель управления нужна для управления

Из книги автора

Панель управления нужна для управления В любом сложном устройстве всегда есть пульт – набор кнопок, рычажков, сенсорных датчиков, штурвалов… словом, приспособлений, с помощью которых можно этим сложным устройством управлять.Есть такой «пульт» и в Vista. Он называется


21. Операции над деревьями

Из книги автора

21. Операции над деревьями Далее будем рассматривать все операции применительно к бинарным деревьям. I. Построение дерева.Приведем алгоритм построения упорядоченного дерева.1. Если дерево пусто, то данные переносятся в корень дерева. Если же дерево не пусто, то