- 树的深度,高度就是有几层
- 树的度为所有节点中最大的孩子个数,单个节点的度为孩子个数,如叶子节点的度为0。
- 二叉树的第i层至多有2^(i-1)个节点
- 深度为k的二叉树至多有2^k -1个节点
- 具有n个节点的完全二叉树深度为log2n取整 +1
- 对于任何一颗二叉树,若其终端节点数为n0,度为2的节点数为n2,则n0=n2+1
- 一颗完全二叉树的节点按层次编号
- 如果i=1,则节点i是二叉树的根
- 如果2i>n,则节点i无左孩子,否则左孩子为2i
- 如果2i+1>n,则节点i无右孩子,否则右孩子为2i+·1
- k叉树的非空链域为(k-1)n+1
- 遍历
先(根)序遍历(根左右):A B D H E I C F J K G
中(根)序遍历(左根右) : D H B E I A J F K C G
后(根)序遍历(左右根) : H D I E B J K F G C A
- 二叉树用来存储操作数,计算。其中叶子节点存储数据,非叶子节点存储操作
- 路径长度指节点之间的分支数目,树的路径长度为根节点到每个节点的路径长度和,完全二叉树是路径长度最小的二叉树,但不唯一
- 哈夫曼树,让两个权重最小的节点组合,之后依次添加权重小的节点。有n个节点则共有2n-1个,其中辅助空间为n-1个
- 哈夫曼编码就是组成哈夫曼树之后,左边为1,右边为0写在分支上,每个叶子也就是元素的表示为从根到叶子的分子顺序排序。是一种变长编码,可以使得发送的数据长度最少。
- 把一棵树转换成二叉树后,这棵二叉树是唯一的。
- 3个节点可以构造5种不同的二叉树。n个节点构成的二叉树个数为C(2n,n)/n+1
- 一个具有1025个节点的二叉树高度为11-1025
- 利用二叉链表树存储树,则根节点的右指针为空(孩子兄弟,它没兄弟)
- 用二叉链表表示有n个节点的二叉树时,值为空的指针域的个数为n+1(每个节点都有一个前驱,加上根没有前驱的1个)
- 设森林F对应的二叉树为B,它有m个节点,B的根为p,p的右子树节点个数为n,则森铃F的第一颗树的节点个数为m-n。(森林变二叉树,首先把每个树变成左孩子右兄弟,之后把它们合起来,所以根节点的右子树就是除第一颗外的所有节点)
- 树中分支数=n-1=度与节点数相乘 节点数=每个度的节点相加
- 完全二叉树叶子节点数 : 总节点数=n0+n1+n2 n0=n2+1 n1为0或1则可计算出n0的值了
- 一颗二叉树的高为h,节点度为0或2,则这颗二叉树最少有2h-1个
- 前缀编码:任何一个编码都不是其他任何编码的前缀(最左子串)
- 线索二叉树是一种逻辑和存储结构
- 引入二叉线索树的目的是加快查找节点的前驱和后继的速度
- n个节点的线索二叉树上含有的线索数为n+1个
- 若X是二叉中序线索树中一个有左孩子的节点,且X不为根,则X的前驱为X的左左子树中的最右节点
- 先序等于后序则它高度等于节点数或空
- 已知一颗二叉树的线序和后续不能唯一确定树的形状
- 满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
- 哈夫曼树没有度为1的节点