定义 #
• 在树中选择某个节点并删除,这棵树将分为若干棵子树。• 此时可以统计每棵子树的节点数并记录最大值。• 取遍树上所有节点,使此最大值取到最小的节点称为树的重心。
性质 #
子树大小性质 #
树的重心的所有子树的大小都一定小于等于整棵树节点总数的一半(n/2)。换言之,如果以重心为根,那么它的任何一个子树中的节点数都不会超过n/2。反之,除了重心以外的所有其他点,都必然存在一棵节点个数大于n/2的子树。
重心数量与位置性质 #
一棵树至多有两个重心。如果存在两个重心,它们必定相邻。此时树一定有偶数个节点,且可以被划分为两个大小相等的分支,每个分支各自包含一个重心。将连接两个重心的边删除后,树一定被划分为两棵大小相等的树。
距离和最小性质 #
树中所有点到某个点的距离和中,到重心的距离和是最小的。如果有两个重心,那么到这两个重心的距离和一样。反过来,如果某点到树中所有点的距离和最小,那么这个点一定是重心。
重心移动性质 #
对树进行某些操作后,重心的位置可能会发生变化,但变化范围有限。把一个树添加或删除一个叶子节点时,树的重心最多只移动一条边的距离。把两棵树通过一条边相连得到一棵新的树,新的树的重心在连接原来两个树的重心的路径上。如果两棵树大小一样,则新的重心就是两个连接点。