树的性质
对于树相关的基本定义不再说明,这里主要是记录一些做题容易遇到的性质。
- 结点的层次是从树根开始定义;结点的深度是从根结点开始自顶向下逐层累加的;结点的高度是从叶结点开始自底向上逐层累加的;**树的高度(或深度)**是树中结点的最大层数。
- 由于树中的分支是有向的,即从双亲指向孩子,所以树中的路径是从上向下的,同一双亲的两个孩子之间不存在路径。
- 树中的结点数等于所有结点的度数加1
- 度为
m
的树中第i
层上至多有 mi-1 个结点 (i>=1) - 高度为
h
的m
叉树之多有 (mh-1)/(m-1) 个结点 - 具有
n
个结点的m
叉树的最小高度为 h=⌈ logm(n(m−1)+1) ⌉
⌊ ⌋
为下取整符号,⌈ ⌉
为上取整符号
二叉树的性质
- 非空二叉树上的叶结点数等于度为
2
的结点数加1,即 n0= n2 + 1
拓展:对于任意一棵树,若结点的数量为n,则边的数量为n-1
-
非空二叉树上第k层最多有 2k-1 个结点
-
高度为
h
的二叉树至少有2h-1个结点 -
对一颗有n个结点的完全二叉树的结点按层序编号(从第一层到 ⌊ log2n ⌋+1 层,每层从左到右),对任一结点i(1<=i<=n):
(1)如果i=1
,则结点i是二叉树的根,无双亲,如果i>1,则其双亲结点是结点⌊ i/2 ⌋
,若i为偶数,是双亲的左孩子,若i为奇数,则是双亲的左孩子
(2)如果2i>n
,则结点i无左孩子(结点i为叶子结点)否则左孩子是结点2i
。
(3)如果2i+1>n
,则结点i无右孩子,否则其右孩子是结点2i+1
.
(4)结点i所在层次(深度)为 ⌊ log2n ⌋+1 -
具有n个结点的完全二叉树的高度为 ⌈ log2(n+1) ⌉ 或 ⌊ log2n ⌋+1