Prufer数列
0 导语 Prufer数列是无根树的一种数列。构造简单,具有很优秀的性质。Prufer数列是生成树计数的一个巧妙工具。 1 介绍 1.1 从树到Prufer数列 一棵n个有编号节点的无根树对应 唯一 的一串长度为n-2的Prufer数列。而我们可以用迭代删点的方式生成Prufer数列。 定义无向连通图 \(G=(V,E)\) , \(|V|=|E|+1\) 。我们定义叶子节点为度数为1的节点。然后按以下步骤: 找到一个节点 \(u\in V\) ,满足 \(deg_u=1\) 的最小的 \(u\) ,记下 \(u\) 和边 \((u,v)\in E\) 。 在Prufer数列中加入节点 \(v\in V\) ,在原图中删去 \(u\) 和边 \((u,v)\) 。 如果 \(|V|=2\) 则停止,否则重复1,2。 比如上图 找到5,在数列中加入2,删除5及其连边 找到6,在数列中加入2,删除6及其连边 找到7,在数列中加入3,删除7及其连边 找到2,在数列中加入1,删除2及其连边 找到3,在数列中加入1,删除3及其连边 结束,得到数列[2,2,3,1,1]。 1.2 从Prufer数列到树 一串长度为n-2的Prufer数列对应 唯一 的一棵n个有编号节点的无根树。 取出Prufer数列最前面的元素 \(u\) ,删除 \(u\) 。 在点集 \(V\)