Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СТА (лекции+лабы) / Структуры и алгоритмы обработки данных.docx
Скачиваний:
99
Добавлен:
16.03.2016
Размер:
1.9 Mб
Скачать

Ста: Лекция №7 - Деревья

Версия 2.01, 29 марта 2015г.

(С) 2012-2015, Зайченко Сергей Александрович, к.т.н, ХНУРЭ, доцент кафедры АПВТ

Основные сведения о деревьях

Дерево - это математическая абстракция, состоящая из совокупности вершин, называемых узлами, и соединяющих их дуг, называемых ребрами, при этом существует не более одного ребра, соединяющего любую пару узлов, и отсутствуют циклы.

Дерево является частным случаем понятия графа, и имеет широкое распространение в дискретной математике и информатике. В практических задачах часто встречаются древовидные структуры, например:

  • каталоги и файлы на диске;

  • разделы и главы в книге;

  • факультеты и кафедры в университете;

  • области и районы в государстве.

Пустое дерево - дерево, не содержащее ни одной вершины.

Каждый узел дерева имеет не более одного узла-родителя и может иметь несколько узлов-потомков, или дочерних узлов. В приведенном ниже примере для узлов B, C и D узел A является родителем, а они для него - потомками. В свою очередь потомками узла B являются узлы E и F, для которых узел B является родителем. Узел G является потомком узла C, для него узел C является родителем.

Корень дерева - это узел верхнего уровня, не являющийся потомком ни одного из других узлов. У непустого дерева может быть только один корень. В данном примере корнем является узел A.

Узлы, не имеющие потомков, называются листьями. В приведенном примере листьями являются узлы D, E, F и G.

Узлы-потомки, обладающие общим узлом-родителем, называются братскими. В данном примере братскими между собой являются узлы B, C, D (общий родитель - узел A), узлы E и F (общий родитель - узел B).

Совокупность узлов и соединяющих их ребер, начинающаяся от узла-потомка с точки зрения родителя, называется поддеревом. Например, с точки зрения узла A имеется 3 поддерева:

  • поддерево, состоящее из узлов B, E, F

  • поддерево, состоящее из улов C и G

  • поддерево, состоящее из единственного узла D.

Путем в дереве называется последовательность ребер, соединяющая два связанных узла. Существует не более одного пути между любыми двумя узлами дерева (0 либо 1).

Для любого некорневого узла всегда существует путь до корня. Длина пути от некоторого выбранного узла до корневого, т.е. количество участвующих в пути узлов, называется высотой узла. В частности, высота узла A равна 1, высота узлов B, C и D равна 2, а высота узлов E, F и G равна 3.

Наибольшая высота соответствует наиболее отдаленным от корня узлам-листам, и называется высотой дерева. В примере наибольшая высота узла равна 3, отсюда высота дерева также равна 3.

Дерево, у которого среди всех нелистовых узлов имеется не более N  потомков на один узел-родитель, называется N-арным деревом. В таком дереве допускается, что каждый узел имеет от 0 до N узлов-потомков. Приведенный пример представляет собой N-арное дерево с кратностью 3, поскольку наиболее разветвленный узел A имеет 3 узла-потомка.

Если для каждого узла-родителя имеет значение порядок перечисления соответствующих ему узлов-потомков, такое дерево называется упорядоченным. В противном случае, когда порядок перечисления дочерних узлов может быть любым, дерево является неупорядоченным.

Особый случай представляют собой бинарные, или двоичные, деревья. Бинарное дерево - это частный случай упорядоченного N-арного дерева, у которого N=2. Для каждого узла-родителя бинарного дерева поддеревья, образуемые первым и вторым узлами, называются левым и правым поддеревом соответственно.

Также как для элементов связных списков, с узлами деревьев могут быть ассоциированы произвольные данные-значения, иногда в литературе называемые метками узлов.