树
树是一种特殊的图 。
特点:
- 若树有n个点,则有n-1条边。
- 树有连通性但没有回路。
- 从一个点出发可以到达任意一个,而且路径是唯一的。
树的重心u(最平衡的点):
- 以树上任意一个结点为根计算它的子树的结点数,如果结点u的最大的子树的结点数最少,那么u就是树的重心。
- 删除点u后得到两棵或更多棵互不连通的子树,其中最大子树的结点数最小。u是树上最平衡的点。
若删除① ,得到两棵子树,节点数分别为7和3,最大的子树的结点数为7,比4大,不是重心。
如何计算以结点i为根的子树的结点数量?
- 对i做DFS:从i出发,递归到最底层后返回,每返回一个结点,结点数加1(因为每个结点只返回1次),直到所有结点都返回,就得到了子树上结点总数。