prufer序列
引入
- 如何为有标号无根树判重?
- 这里可以用到prufer序列——
初识
- prufer序列是与无根树对应的序列。
- 每一棵无根树(点数 n ≥ 2 n≥2 n≥2)都可以得到与其唯一对应的序列,且序列长度为 n − 2 n-2 n−2,
- 通过特定的方式,可以将无根树转为prufer序列,
- 也可以通过prufer序列和确定的点集,还原一棵无根树。
操作
一、无根树转prufer序列
- 每次选取当前度数为 1 1 1且编号最小的点(以保证序列唯一性),将与其相连的点(只有一个)的编号加入prufer序列中,并将该点(指选取的这个点,不是与它相连的这个点)删除。
- 直到树上只剩两个点时停止操作,此时得到长度为 n − 2 n-2 n−2的prufer序列。
- 例如一个无根树,边集为 { ( 1 , 2 ) , ( 2.3 ) , ( 1 , 4 ) , ( 4 , 5 ) , ( 4 , 6 ) } \{ (1,2),(2.3),(1,4),(4,5),(4,6)\} { (1,2),(2.3),(1,4),(4,5),(4,6)},
- 选择 3 3 3号点,此时序列为 { 2 } \{2\} { 2}
- 选择 2 2 2号点,此时序列为 { 2 , 1 } \{2,1\} { 2,1}
- 选择 1 1 1号点,此时序列为 { 2 , 1 , 4 } \{2,1,4\} { 2,1,4}
- 选择 5 5 5号点,此时序列为 { 2 , 1 , 4 , 4 } \{2,1,4,4\} { 2