Prufer 序列简介
Prufer数列是无根树的一种数列。在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2。它可以通过简单的迭代方法计算出来。它由Heinz Prufer于1918年在证明cayley定理时首次提出。
将无根树转化为 Prufer 序列
总体的思路是迭代删点,直到原图中只剩下两个点。对于一棵树T,我们已经将每次找到树中标号最小的叶子结点,将这个叶子结点以及与它相邻的边删去,将与叶子结点相连的点加入数列中。重复上一步,直到原图中只剩下两个点。
例子:以下面的树为例子(源自百度百科),首先在所有叶子节点中编号最小的点是2,和它相邻的点的编号是3,将3加入序列并删除编号为2的点。接下来删除的点是4,5被加入序列,然后删除5,1,此时原图仅剩两个点,Prufer序列构建完成,为{3,5,1,3}
将 Prufer 序列转化为无根树
以上图的Prufer序列为例,Prufer序列为{3,5,1,3},开始时G={1,2,3,4,5,6},未出现的编号最小的点是2,将2和3连边,并删去Prufer序列首项和G中的2。接下来连的边为{4,5},{1,5},{1,3},此时集合G中仅剩3和6,在3和6之间连边,原树恢复。
Prufer 序列的两条重要性质
某个节点标号在Prufer序列中出现的次数 + 1 = 该节点在原无根树中的度数
无根树与Prufer序列是唯一对应的,故可用Prufer序列唯一对应一颗无根树,且 n 个节点的无根树的Prufer长度为 n−1
cayley 定理
一个完全图 Kn 有 nn−2 个生成树,亦即 n 个节点的带标号的无根树有 nn−2 个