Построение дерева по коду
Для того чтобы восстановить дерево по коду, нужно разбить последовательность на пары из нулей и единиц, соответствующие одному и тому же дереву. Первая попавшаяся в коде единица образует пару с предшествующим нулем. Каждая следующая образует пару с ближайшим слева неиспользованным нулем. Пометим пары снизу дугами, которые соответствуют ребрам графа, занумеровав их.
Например, если дан код (010010010111010011), поступим так (см. рис. 2.34а). Дерево, соответствующее этому коду, изображено на рис. 2.34б.
В а) б) Рис. 2.34 Рис. 2.35торой способ кодирования
Перенумеруем вершины дерева произвольным образом (рис.2.35). Найдем висячую вершину с наименьшим номером. Запишем номер единственной смежной с ней вершины и удалим висячую вершину вместе с ребром. Для получившегося дерева снова найдем висячую вершину с наименьшим номером и т. д., пока не останется одно ребро. Длина кода при этом равна |E| – 1 = |V| – 2.
Пример.Построить код дерева, изображенного на рис. 2.35.
Висячая вершина с наименьшим номером – 1, смежная с ней – 2. Удаляем вершину 1 вместе с ребром и записываем в код 2. В оставшемся дереве висячая вершина с наименьшим номером – 5, смежная с ней – 4. Удаляем вершину 5 вместе с ребром и записываем в код 4. В оставшемся дереве висячая вершина с наименьшим номером – 6, смежная с ней – 4. Удаляем вершину 6 вместе с ребром и снова записываем в код 4. В оставшемся дереве висячая вершина с наименьшим номером – 7, смежная с ней – 4. Удаляем вершину 7 вместе с ребром и снова записываем в код 4. В оставшемся дереве висячая вершина с наименьшим номером – 4, смежная с ней – 2. Удаляем вершину 4 вместе с ребром и записываем в код 2. В оставшемся дереве висячая вершина с наименьшим номером – 2, смежная с ней – 3. Удаляем вершину 2 вместе с ребром и записываем в код 3. Осталось одно ребро. Получили код дерева [244423].
В
Рис. 2.36 Рис.2.37
Можно показать, что между помеченными деревьями (т.е. деревьями с пронумерованными вершинами) и последовательностями , гдесуществует взаимно однозначное соответствие. Поэтомуколичество помеченных деревьев равно (формула Кэли).
Эйлеровы пути. Эйлеровы циклы
В графе Gпуть изав bназываетсяэйлеровым путем, если он содержит все ребра графа, причем каждое по одному разу.Эйлеров цикл – путь изава, который содержит все ребра графа, каждое по одному разу.Гамильтонов путь – путь, обходящий все вершины графа по одному разу.Гамильтонов цикл – путь изава, обходящий все вершины графа, кромеа, по одному разу.
Теорема. Пусть дан связный граф. В нем существуетэйлеров путь тогда и только тогда, когда две вершины графа имеют нечетную степень, а все остальные – четную. Эйлеров цикл существует тогда и только тогда, когда все вершины графа имеют четную степень.