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