Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

270 Глава 7. Деревья

Другие отношения узла

Два узла, которые являются детьми того же самого родителя, являются родными братьями. Узел v внешний, если у v нет детей. Узел v внутренний, если у него есть один или несколько детей. Внешние узлы также известны как листья.

Пример 7.1: В большинстве операционных систем файлы организованы иерархически во вложенные справочники (также названный папками), которые представлены пользователю в форме дерева. (См. рисунок 7.3.) Более определенно внутренние узлы дерева связаны со справочниками, и внешние узлы связаны с регулярными файлами. В UNIX и операционных системах Linux, корень дерева соответственно называет «справочником корня» и представляет символ «/».

Рисунок 7.3: Дерево, представляющее часть файловой системы.

Узел u является предком узла v, если u = v или u - предок родителя v. С другой стороны мы говорим, что узел v является потомком узла u, если u - предок v. Например, в рисунке 7.3, cs252/предок бумаг/, и pr3 - потомок cs016/. Поддерево T, внедренного в узле v, является деревом, состоящим из всех потомков v в T (включая сам v). В рисунке 7.3 поддерево, внедренное в cs016/, состоит из узлов cs016/, сорта, homeworks/, программы/, hw1, hw2, hw3, pr1, pr2, и pr3.

7.1. Общие деревья 271

Края и пути в деревьях

Край дерева T является парой узлов (u, v) таким образом, что u - родитель v или недостаток

стих. Путь T - последовательность узлов, таким образом, что любые два последовательных узла в последовательности формируют край. Например, дерево в рисунке 7.3 содержит путь (cs252/, проекты/, народ/, рынок). Пример 7.2: используя единственное наследование, отношение наследования между классами в C ++ программа формирует дерево. Базовый класс - корень дерева.

Заказанные деревья

Дерево заказано, если есть линейный заказ, определенный для детей каждого узла;

то есть, мы можем опознать детей узла, как являющегося первым, вторым, третьим и так далее. Такой заказ определен тем, как дерево должно использоваться и обычно находится в - dicated, таща дерево с родными братьями, устроенными слева направо, соответствуя их линейному соотношению. Заказанные деревья, как правило, указывают на линейный заказ rela-tionship существующий между родными братьями, перечисляя их в последовательности или iterator в правильном порядке. Пример 7.3: структурированный документ, такой как книга, иерархически организован как дерево, внутренние узлы которого - главы, секции и подразделы, и чьи внешние узлы - параграфы, таблицы, числа, библиография, и так далее. (См. рисунок 7.4.) Корень дерева соответствует самой книге. Мы могли, фактически, полагать, что расширение дерева далее показало параграфы, состоящие из предложений, предложения, состоящие из слов и слов, состоящих из знаков. В любом случае такое дерево - пример заказанного дерева, потому что есть четко определенный заказ среди детей каждого узла.

Рисунок 7.4: заказанное дерево связалось с книгой.