Коды Прюфера
Коды Прюфера.
Кодирование Прюфера переводит помеченные деревья порядка
в последовательность чисел от до по алгоритму: Пока количество вершин
{
1. Выбирается лист с минимальным номером.
2. В последовательность Прюфера добавляется номер смежной вершины.
3. Лист и инцидентное ребро удаляются из дерева.
}
Полученная последовательность и есть код Прюфера.
Лемма: |
Номера всех вершин, которые не являются листьями или с номером , встречаются в коде Прюфера. А те, которые не входят - являются листьями. |
Доказательство: |
1. Вершина не удаляется, так как у неё максимальный номер (в графе с вершиной - n - как минимум один раз встретилось в коде.2. Если вершина, не лист, то у неё на каком-то шаге была смежная вершина - лист. А, значит, номер этой вершины былА, значит, все вершины, не являющиеся листьями "входят" в код Прюфера. выписан в код. 3. Так как вершина - лист(с номером не равным ), она была только удалена. |
Лемма: |
По любой последовательности длиной из чисел от до можно построить помеченное дерево. |
Доказательство: |
Доказательство по индукции.
База. |
Теорема: |
Кодирование Прюфера задаёт биекцию между множествами помеченных деревьев порядка и последовательностями длиной из чисел от до |
Доказательство: |
1. Каждому помеченному дереву соотвествует последовательность и только одна. Это верно по построению кода.
2. Каждой последовательности соотвествует помеченное дерево и только одно. Это верно по предыдущей лемме, т.к. восстанавливали мы однозначно.
|
Следствием из этой теоремы является формула Кэли.