点击打开链接

prufer编码  

prufer编码是用另外一种形式来描述一棵树,这棵树是无根树,它可以和无根树之间形成一一对应关系。

 编码方式是:


prufer编码(转)

这是一颗无根树,这课树的prufer编码为5,5,4,4,4,6。

首先选这棵树叶子中编号最小的点,将这个点删除,并且把它的邻接点加入一个数组中,例如第一个删除的节点为1,并且把5加入数组中。删除节点后形成一棵新的树,再在新树中删除最小的节点,并且把邻接点加入数组中,,这样重复以上步骤,知道树中最后剩余两个点的时候终止操作。这时候数组中的便是prufer编码。

由prufer编码来重建这棵树的方法是:

假如prufer编码为(a1,a2,a3,a4,a5,.....an-2)在上述数组中,在数组最后加入n这个值,这样便形成了数组中包含n-1个节点,例如上述为5,5,4,4,4,6,8。

然后取不在数组中的最小值为b1,则b1与a1是邻接点,在数组中删除a1,再在剩下的数中选取不为b1,且不在数组中的最小值为b2,则b2与a2是邻接点,这样依次循环下去直到结束,这样便形成了一棵树。

Cayley定理:不同的n节点标号树的数量为n^(n-2)。


例题:

bzoj1005

bzoj1211

相关文章:

  • 2022-03-08
  • 2021-11-30
  • 2021-07-22
  • 2021-08-11
  • 2022-12-23
  • 2021-11-15
  • 2021-07-02
  • 2021-11-22
猜你喜欢
  • 2022-12-23
  • 2021-11-27
  • 2021-07-02
  • 2021-05-27
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
相关资源
相似解决方案