
- •Ста: Лекция №7 - Деревья
- •Основные сведения о деревьях
- •Обход деревьев
- •Атд “Дерево”
- •Типичные структуры данных для n-арных деревьев
- •1. Массив меток и массив родительских индексов.
- •2. Массив меток и заголовок со списками дочерних узлов.
- •3. Динамическая структура с указателями
- •В результате ее выполнения в динамической памяти формируется структура объектов, в существенной степени напоминающая оригинальный пример из описания понятия деревьев:
- •Бинарные деревья
Ста: Лекция №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. Для каждого узла-родителя бинарного дерева поддеревья, образуемые первым и вторым узлами, называютсялевым иправым поддеревом соответственно.
Также как для элементов связных списков, с узлами деревьев могут быть ассоциированы произвольные данные-значения, иногда в литературе называемые метками узлов.