Cayley 公式:这个公式告诉我们可以用N个顶点构造多少棵树。它 表示有N N – 2 个标记树,即N 个节点。节点被标记为1, 2, …, N ,如果两棵树的结构或标记不同,则它们是不同的。
例如:当N为4 时,标记树的数量为4 4 – 2 = 16。
下图描绘了标记树的数量:
在上图中,给出了 4 个节点,从中创建了16 个标记树。
使用 Prüfer 代码导出的 Cayley 公式:
普鲁弗代码:
- Prüfer 代码是描述标记树的 (N – 2) 个数字序列。
- 代码是按照从树中移除 (N – 2) 个叶子的过程构建的。
- 在每一步,具有最小标签的叶子被移除,并且其唯一邻居的标签被添加到代码中。
以下是计算下图的 Prüfer 代码的步骤:
- 给定一个具有五个节点的图:
- 删除节点 1 并将节点 4 添加到代码中:
- 然后删除节点 3 并将节点 4 添加到代码中:
- 最后,删除节点 4 并将节点 2 添加到代码中:
因此,图的Prüfer 代码由{4, 4, 2} 给出。
- 可以为任何树构造 Prüfer 代码。
- 原始树可以从 Prüfer 代码重建。
- 因此,n 个节点的标记树的数量等于N N – 2 ,大小为 N 的 Prüfer 代码的数量。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。