在 图论一个Prüfer代码是整数的唯一序列,它表示一个特定的树。
您可以使用以下来自维基百科的算法找到一棵树的Prüfer代码:
考虑一个标记树T与顶点
{1, 2, ..., n}
。在步骤i处,删除标签最小的叶子,并将Prüfer序列的第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]]
第一种情况那样接受输入吗?(即每个分支)