0.变量说明
- 度为 mmm 的结点数 = nmn_mnm;
- iii : 第 iii 层 或 第 iii 号结点;
- hhh : 树的高度;
- ceilceilceil 向上取整, floorfloorfloor 向下取整 ;
1. 树的计算公式 (通用)
- 总结点数=n0+n1+n2+...+nm=总分支数+1总结点数 =n_0+n_1+n_2+...+n_m = 总分支数 + 1总结点数=n0+n1+n2+...+nm=总分支数+1 ;
- 总分支数=1∗n1+2∗n2+...+m∗nm总分支数 = 1*n_1+2*n_2+...+m*n_m总分支数=1∗n1+2∗n2+...+m∗nm ;
- 度为 mmm 的树的第 iii 层上最多有 mi−1m^{i-1}mi−1 个结点 (i≥1)(i\ge1)(i≥1) ;
- 高度为 hhh 的 mmm 叉树最多有 mh−1/m−1m^h-1/m-1mh−1/m−1 个结点;
- 具有 nnn 个结点的 mmm 叉树的最小高度为 ceil(logm(n(m−1)+1))ceil (log_m(n(m-1)+1))ceil(logm(n(m−1)+1)) ;
2. 二叉树计算公式
- 非空二叉树中 n0=n2+1n_0 = n_2+1n0=n2+1 ;
- 非空二叉树中 结点数为 nnn时, 边数=n−1边数=n-1边数=n−1 ;
- 高为 hhh 的二叉树 最多 有 2h−12^{h-1}2h−1 个结点 ;
3. 满二叉树计算公式
- 编号问题 : 编号为 iii 的结点
- 双亲为 floor(i/2)floor(i / 2)floor(i/2)
- 左孩子编号为 2i2i2i ;
- 右孩子编号为 2i+12i+12i+1
4. 完全二叉树计算公式
- 编号问题 : 编号为 i 的结点 :
- i≤floor(n/2)i\le floor(n/2)i≤floor(n/2) 则 i 为分支结点, 否则 i 就是叶子结点
- 按层编号, 当编号为 i 的结点为 叶子结点或只含左子节点 , 则编号大于 i 的都是叶子结点;
- 总结点数为奇数, 每个分支节点都要左右子结点;
- 总结点数为偶数, 编号最大者(i=n/2i=n/2i=n/2) 只有左子节点;
- n个结点的完全二叉树的高度为 h=ceil(log2(n+1))h=ceil(log_2(n+1))h=ceil(log2(n+1)) 或 h=floor(log2n)+1h=floor(log_2n)+1h=floor(log2n)+1;
- 若某节点编号为 i :
- 2i≤n2i\le n2i≤n i的左子节点编号为 2i2i2i, 否则就是没有左子节点;
- 2i+1≤n2i+1\le n2i+1≤n i的右子节点编号为 2i+12i+12i+1, 否则就是没有右子节点;
- 最后一个分支结点的编号为 floor(n/2)floor(n/2)floor(n/2) ;