В граф-теориякод прюферово является уникальной последовательностью целых чисел , которое обозначает конкретное дерево.
Вы можете найти код дерева Prüfer с помощью следующего алгоритма, взятого из Википедии:
Рассмотрим помеченное дерево T с вершинами
{1, 2, ..., n}. На шаге i удалите лист с наименьшей меткой и установите i- й элемент последовательности Прюфера в качестве метки соседа этого листа.
(Обратите внимание, что, поскольку это лист, у него будет только один сосед).
Вы должны остановить итерацию, когда в графе остаются только две вершины.
задача
Получив обозначенное дерево в качестве входных данных, выведите его код Prüfer. Вы можете принять участие любым разумным способом. Например, матрица смежности или графическое представление ваших языков. ( Вы не можете принимать ввод в качестве кода Prüfer ).
Это Код-гольф поэтому вы должны стремиться минимизировать количество байтов в вашем источнике.
Контрольные примеры
Вот некоторые входы в ASCII с их выходами ниже. Вам не нужно поддерживать ввод ASCII, как это.
3
|
1---2---4---6
|
5
{2,2,2,4}
1---4---3
|
5---2---6---7
|
8
{4,4,2,6,2,5}
5---1---4 6
| |
2---7---3
{1,1,2,7,3}
[[2,1],[2,3],[2,5],[2,4,6]]для первого случая? (т.е. каждая ветка)