树的定义
树是n(n≥0)个结点的有限集合,n= 0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:1)有且仅有一个特定的称为根的结点。2)当n> 1时,其余结点可分为m(m> 0)个互不相交的有限集合T1, T2,…, Tm,其中每个集合本身又是一棵树,并且称为根结点的子树。
树的性质
-
节点数=度数+1
-
度为m的树和m叉树的关系
度为m的树 | m叉树 | |
---|---|---|
定义 | 各节点的度的最大值 | 各节点最多只能有m个孩子的树 |
相同点 | 树的所有节点 ≤ \leq ≤m(最多m个孩子) | 树的所有节点 ≤ \leq ≤m(最多m个孩子) |
不同点1 | 至少有一个节点=m | 所有的节点的度可以 ≤ \leq ≤m |
不同点2 | 不能为空树,至少有m+1个节点 | 可以为空树 |
-
度为m的树第i层最多有mi-1个节点
-
m叉树第i层最多有mi-1个节点
-
高度为h的m叉树最多的节点有(等差数列求和=m0+m1+m2+…+mh)
m h − 1 m − 1 \frac{m^h-1}{m-1} m−1mh−1 -
高度为h的m叉树至少有h个节点
-
高度为h且度为m的树至少有 h+m-1个节点
-
具有n个结点的m叉树的最小高度为[logm(n(m -1) + 1)]
推导过程:
- n ≤ m h − 1 m − 1 n\leq\frac{m^h-1}{m-1} n≤m−1mh−1
- n ( m − 1 ) + 1 ≤ m h n(m-1)+1 \leq m^h n(m−1)+1≤mh
- h m = l o g m ( n ( m − 1 ) + 1 ) h_m=log_m(n(m -1) + 1) hm=logm(n(m−1)+1)
二叉树的定义
二叉树是n(n≥0)个结点的有限集合:①或者为空二叉树,即n= 0。②或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树。特点:①每个结点至多只有两棵子树②左右子树不能颠倒(二叉树是有序树)
满二叉树和完全二叉树的区别
满二叉树 | 完全二叉树 | |
---|---|---|
定义 | 一棵高度为h,且含有2h -1个结点的二叉树 | 当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树 |
特点1 | 只有最后一层有叶子结点 | 只有最后两层有叶子结点 |
特点2 | 不存在度为1的结点 | 最多只有一个度为1的结点 |
特点3 | 按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为i/2(如果有的话) | 与满二叉树一样 |
特点4 | i≤i/2为分支结点,i>i/2为叶子结点 |
二叉树的性质
-
设非空二叉树中度为0、1和2的结点个数分别为n0、n1和n2,则n0= n2+ 1(叶子结点比二分支结点多一个)
-
二叉树第i层至多有2i-1个结点(i≥1)
-
m叉树第i层至多有mi-1个结点(i≥1)
-
高度为h的二叉树至多有2h−1个结点(满二叉树)
-
高度为h的m叉树至多结点有
m h − 1 m − 1 \frac{m^h-1}{m-1} m−1mh−1
完全二叉树的性质
- 具有n个(n > 0)结点的完全二叉树的高度h为log2(n+1)或log2n+1
- 对于完全二叉树,可以由的结点数n推出度为0、1和2的结点个数为n0、n1和n2。
完全二叉树最多只有一个度为1的结点,即
n1=0或1
n0= n2+ 1->n0+ n2一定是奇数
推导出
若完全二叉树有2k个(偶数)个结点,则必有n1=1,n0=k,n2=k-1
若完全二叉树有2k-1个(奇数)个结点,则必有n1=0,n0=k,n2=k-1