В теории графов дерево — это неориентированный граф , в котором любые две вершины соединены ровно одним путем , или, что то же самое, связный ациклический неориентированный граф. [1] Лес — это неориентированный граф, в котором любые две вершины соединены не более чем одним путем, или, что то же самое, ациклический неориентированный граф или, что то же самое, непересекающееся объединение деревьев. [2]
Полидерево [3] (или ориентированное дерево [4] или ориентированное дерево [5] [ 6] или односвязная сеть [7] ) представляет собой ориентированный ациклический граф (DAG), базовым неориентированным графом которого является дерево. Полилес (или направленный лес, или ориентированный лес) — это ориентированный ациклический граф, базовым неориентированным графом которого является лес.
Различные виды структур данных , называемые в информатике деревьями , имеют в основе графы , которые в теории графов являются деревьями, хотя такие структуры данных обычно представляют собой корневые деревья. Корневое дерево может быть направленным, называемым направленным корневым деревом, [8] [9] либо все его ребра должны быть направлены в сторону от корня — в этом случае оно называется древовидным [ 4] [10] или исходящим деревом [11] ] [12] — или сделать все его ребра направленными к корню — в этом случае это называется антидревесным [13] или внутренним деревом. [11] [14] Некоторые авторы определяют корневое дерево как ориентированный граф. [15] [16] [17] Корневой лес — это непересекающееся объединение корневых деревьев. Корневой лес может быть направленным, называемым направленным корневым лесом, либо все его ребра направлены от корня в каждом корневом дереве (в этом случае он называется ветвящимся или внешним лесом), либо все его ребра направлены в сторону корня. в каждом корневом дереве — в этом случае его называют антиветвящимся или внутрилесным.
Термин « дерево» был придуман в 1857 году британским математиком Артуром Кэли . [18]
Дерево — это неориентированный граф G , который удовлетворяет любому из следующих эквивалентных условий:
Если G имеет конечное число вершин, скажем n из них, то приведенные выше утверждения также эквивалентны любому из следующих условий:
Как и везде в теории графов, граф нулевого порядка (граф без вершин) обычно не считается деревом: хотя он и является графом пустосвязным (любые две вершины могут быть соединены путем), он не равен 0 -связен (или даже (-1)-связен) в алгебраической топологии, в отличие от непустых деревьев, и нарушает соотношение «на одну вершину больше, чем ребра». Однако его можно рассматривать как лес, состоящий из нуля деревьев.
Внутренняя вершина (или внутренняя вершина) — это вершина степени не ниже 2. Аналогично, внешняя вершина (или внешняя вершина, конечная вершина или лист) — это вершина степени 1. Вершина ветвления в дереве — это вершина степени минимум 3. [19]
Неприводимое дерево (или дерево, приведенное в ряд) — это дерево, в котором нет вершины степени 2 (нумерованной в последовательности A000014 в OEIS ). [20]
Лес — это неориентированный граф , в котором любые две вершины соединены не более чем одним путем. Эквивалентно, лес — это неориентированный ациклический граф, все связные компоненты которого являются деревьями; другими словами, граф состоит из несвязного объединения деревьев. В качестве частных случаев примерами лесов являются граф нулевого порядка (лес, состоящий из нулевых деревьев), одиночное дерево и граф без ребер. Поскольку для каждого дерева V − E = 1 мы можем легко подсчитать количество деревьев в лесу, вычитая разницу между общим количеством вершин и общим количеством ребер. TV − TE = количество деревьев в лесу.
Полидерево [3] (или ориентированное дерево [4] или ориентированное дерево [5] [ 6] или односвязная сеть [7] ) представляет собой ориентированный ациклический граф (DAG), базовым неориентированным графом которого является дерево. Другими словами, если мы заменим его ориентированные ребра неориентированными, мы получим неориентированный граф, который одновременно связен и ацикличен.
Некоторые авторы [ кто? ] ограничить фразу «направленное дерево» случаем, когда все ребра направлены к определенной вершине или все направлены от определенной вершины (см. Древовидность ).
Полилес (или направленный лес, или ориентированный лес) — это ориентированный ациклический граф, базовым неориентированным графом которого является лес. Другими словами, если мы заменим его ориентированные ребра неориентированными, мы получим неориентированный граф, который является ациклическим.
Некоторые авторы [ кто? ] ограничить фразу «направленный лес» случаем, когда все ребра каждого связного компонента направлены к определенной вершине или все направлены от определенной вершины (см. ветвление ).
Корневое дерево — это дерево, в котором одна вершина назначена корнем. [21] Ребрам корневого дерева можно присвоить естественную ориентацию либо от корня, либо к нему, и в этом случае структура становится направленным корневым деревом. Когда направленное корневое дерево имеет ориентацию от корня, оно называется древовидным [ 4] или внешним деревом ; [11] когда он имеет ориентацию к корню, его называют антидревесным или внутридеревьевым . [11] Порядок дерева — это частичный порядок вершин дерева с u < v тогда и только тогда, когда единственный путь от корня до v проходит через u . Корневое дерево T , которое является подграфом некоторого графа G, является нормальным деревом , если концы каждого T -пути в G сравнимы в этом порядке дерева (Diestel 2005, стр. 15). Корневые деревья, часто с дополнительной структурой, такой как упорядочение соседей в каждой вершине, являются ключевой структурой данных в информатике; см. древовидную структуру данных .
В контексте, где деревья обычно имеют корень, дерево без назначенного корня называется свободным деревом .
Меченое дерево — это дерево, в котором каждой вершине присвоена уникальная метка. Вершинам помеченного дерева на n вершинах (для неотрицательных целых чисел n ) обычно присваиваются метки 1, 2, …, n . Рекурсивное дерево — это помеченное корневое дерево, в котором метки вершин соблюдают порядок дерева (т. е. если u < v для двух вершин u и v , то метка u меньше метки v ).
В корневом дереве родительской вершиной v является вершина, соединенная с v на пути к корню; каждая вершина имеет уникального родителя, за исключением того, что у корня нет родителя. [21] Дочерним элементом вершины v является вершина, родительской вершиной которой является v . [21] Асцендент вершины v — это любая вершина, которая является либо родительской вершиной v , либо (рекурсивно) является восходящей родительской вершиной v . Потомком вершины v является любая вершина, которая является либо дочерним элементом вершины v , либо (рекурсивно) потомком дочернего элемента v . Родственным братом вершины v является любая другая вершина в дереве, имеющая общего родителя с v . [21] Лист — это вершина, не имеющая дочерних элементов . [21] Внутренняя вершина — это вершина, которая не является листом. [21]
Высота вершины корневого дерева — это длина самого длинного пути вниз к листу из этой вершины. Высота дерева равна высоте корня . Глубина вершины — это длина пути к ее корню ( корневой путь ). Это [ необходимо разъяснение (Это ___?) ] обычно требуется при манипулировании различными самобалансирующими деревьями, в частности деревьями AVL . Корень имеет нулевую глубину, листья имеют нулевую высоту, а дерево только с одной вершиной (следовательно, и корень, и лист) имеет глубину [ необходимы пояснения (мы определили только глубину вершины, а не глубину дерева. ) ] и нулевая высота. Традиционно пустое дерево (дерево без вершин, если таковые разрешены) имеет глубину и высоту -1.
k -арное дерево (для неотрицательных целых чисел k ) — это корневое дерево, в котором каждая вершина имеет не более k детей. [22] 2-арные деревья часто называют бинарными деревьями , а 3-арные деревья иногда называют троичными деревьями .
Упорядоченное дерево (альтернативно плоское дерево или позиционное дерево [23] ) — это корневое дерево, в котором порядок определен для дочерних элементов каждой вершины. [21] [24] Это называется «плоским деревом», потому что упорядочение дочерних элементов эквивалентно вложению дерева в плоскость с корнем наверху, а дочерние элементы каждой вершины ниже этой вершины. Учитывая вложение корневого дерева в плоскость, если фиксировать направление дочерних элементов, скажем, слева направо, то вложение дает упорядочивание дочерних элементов. И наоборот, если дать упорядоченное дерево и традиционно нарисовать корень наверху, то дочерние вершины в упорядоченном дереве можно нарисовать слева направо, что дает по существу уникальное плоское вложение.
Формула Кэли утверждает, что существует n n −2 деревьев с n помеченными вершинами. Классическое доказательство использует последовательности Прюфера , которые, естественно, показывают более сильный результат: количество деревьев с вершинами 1, 2, …, n степеней d 1 , d 2 , …, d n соответственно, является мультиномиальным коэффициентом
Более общая проблема состоит в подсчете остовных деревьев в неориентированном графе и решается теоремой о матричном дереве . (Формула Кэли представляет собой частный случай остовных деревьев в полном графе .) Аналогичная задача подсчета всех поддеревьев независимо от размера в общем случае является #P-полной (Jerrum (1994)).
Подсчет количества немаркированных свободных деревьев — более сложная задача. Замкнутая формула для числа t ( n ) деревьев с n вершинами с точностью до изоморфизма графа неизвестна. Первые несколько значений t ( n ) равны
Оттер (1948) доказал асимптотическую оценку
с C ≈ 0,534949606... и α ≈ 2,95576528565... (последовательность A051491 в OEIS ). Здесь символ ~ означает, что
Это следствие его асимптотической оценки числа r ( n ) немаркированных корневых деревьев с n вершинами:
с D ≈ 0,43992401257... и тем же α , что и выше (ср. Knuth (1997), глава 2.3.4.4 и Flajolet & Sedgewick (2009), глава VII.5, стр. 475).
Первые несколько значений r ( n ) равны [27]
{{cite book}}
: CS1 maint: местоположение ( ссылка )