Дерево — это связныйациклическийграф (то есть граф, не содержащий циклов, между любой парой вершин которого существует ровно один путь) Ориентированное (направленное) дерево — ацикличный орграф (ориентированный граф, не содержащий циклов), в котором только одна вершина имеет нулевую степень захода (в неё не ведут дуги), а все остальные вершины имеют степень захода 1 (в них ведёт ровно по одной дуге). Вершина с нулевой степенью захода называется корнем дерева, вершины с нулевой степенью исхода (из которых не исходит ни одна дуга) называются концевыми вершинами или листьями.
Формально дерево определяется как конечное множество T одного или более узлов со следующими свойствами:
существует один корень дерева T
остальные узлы (за исключением корня) распределены среди непересекающихся множеств T1,...,Tm, и каждое из множеств является деревом; деревья T1,...,Tm называются поддеревьями данного корня T
Связанные определения
Степень узла — количество исходящих дуг (или, иначе, количество поддеревьев узла).
Концевой узел (лист) — узел со степенью 1 (то есть узел, в который ведёт только одно ребро; в случае ориентированного дерева — узел, в который ведёт только одна дуга и не исходит ни одной дуги).
Узел ветвления — неконцевой узел.
Уровень узла — длина пути от корня до узла. Можно определить рекурсивно:
уровень корня дерева T равен 0;
уровень любого другого узла на единицу больше, чем уровень корня ближайшего поддерева дерева T, содержащего данный узел.
Дерево с отмеченной вершиной называется корневым деревом.
m-й ярус дерева T — множество узлов дерева, на уровне m от корня дерева.
частичный порядок на вершинах: , если вершины u и v различны и вершина u лежит на (единственной!) элементарной цепи, соединяющей корень с вершиной v.
корневое поддерево с корнем v — подграф .
Остовное дерево (остов) — это подграф данного графа, содержащий все его вершины и являющийся деревом. Рёбра графа, не входящие в остов, называются хордами графа относительно остова.
Лес — множество (обычно упорядоченное), не содержащее ни одного непересекающегося дерева или содержащее несколько непересекающихся деревьев.
Двоичное дерево
Простое бинарное дерево размера 9 и высоты 4, с корнем значения 2. Это дерево не сбалансировано и не отсортировано.
Термин двоичное дерево (оно же бинарное дерево) имеет несколько значений:
Неориентированное дерево, в котором степенивершин не превосходят 3.
Ориентированное дерево, в котором исходящие степени вершин (число исходящих рёбер) не превосходят 2.
N-арные деревья
N-арные деревья определяются по аналогии с двоичным деревом. Для них также есть ориентированные и неориентированные случаи, а также соответствующие абстрактные структуры данных.
N-арное дерево (неориентированное) — это дерево (обычное, неориентированное), в котором степени вершин не превосходят N+1. В программной реализации требует для каждой вершины создания указателя на родителя (у корня указатель на ноль).
N-арное дерево (ориентированное) — это ориентированное дерево, в котором исходящие степени вершин (число исходящих рёбер) не превосходят N.
Свойства
Дерево не имеет кратных рёбер и петель.
Любое дерево с n вершинами содержит n − 1 ребро. Более того, конечный связный граф является деревом тогда и только тогда, когда B − P = 1, где B — число вершин, P — число рёбер графа.
Граф является деревом тогда и только тогда, когда любые две различные его вершины можно соединить единственным элементарным путём.
Любое дерево однозначно определяется расстояниями (длиной наименьшей цепи) между его концевыми (степени 1) вершинами.