树和二叉树

  1. 树的深度,高度就是有几层
  2. 树的度为所有节点中最大的孩子个数,单个节点的度为孩子个数,如叶子节点的度为0。
  3. 二叉树的第i层至多有2^(i-1)个节点
  4. 深度为k的二叉树至多有2^k -1个节点
  5. 具有n个节点的完全二叉树深度为log2n取整 +1
  6. 对于任何一颗二叉树,若其终端节点数为n0,度为2的节点数为n2,则n0=n2+1
  7. 一颗完全二叉树的节点按层次编号
    1. 如果i=1,则节点i是二叉树的根
    2. 如果2i>n,则节点i无左孩子,否则左孩子为2i
    3. 如果2i+1>n,则节点i无右孩子,否则右孩子为2i+·1
  8. k叉树的非空链域为(k-1)n+1
  9. 遍历

 

先(根)序遍历(根左右):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

  1. 二叉树用来存储操作数,计算。其中叶子节点存储数据,非叶子节点存储操作
  2. 路径长度指节点之间的分支数目,树的路径长度为根节点到每个节点的路径长度和,完全二叉树是路径长度最小的二叉树,但不唯一
  3. 哈夫曼树,让两个权重最小的节点组合,之后依次添加权重小的节点。有n个节点则共有2n-1个,其中辅助空间为n-1个
  4. 哈夫曼编码就是组成哈夫曼树之后,左边为1,右边为0写在分支上,每个叶子也就是元素的表示为从根到叶子的分子顺序排序。是一种变长编码,可以使得发送的数据长度最少。
  5. 把一棵树转换成二叉树后,这棵二叉树是唯一的。
  6. 3个节点可以构造5种不同的二叉树。n个节点构成的二叉树个数为C(2n,n)/n+1
  7. 一个具有1025个节点的二叉树高度为11-1025
  8. 利用二叉链表树存储树,则根节点的右指针为空(孩子兄弟,它没兄弟)
  9. 用二叉链表表示有n个节点的二叉树时,值为空的指针域的个数为n+1(每个节点都有一个前驱,加上根没有前驱的1个)
  10. 设森林F对应的二叉树为B,它有m个节点,B的根为p,p的右子树节点个数为n,则森铃F的第一颗树的节点个数为m-n。(森林变二叉树,首先把每个树变成左孩子右兄弟,之后把它们合起来,所以根节点的右子树就是除第一颗外的所有节点)
  11. 树中分支数=n-1=度与节点数相乘 节点数=每个度的节点相加
  12. 完全二叉树叶子节点数 : 总节点数=n0+n1+n2 n0=n2+1 n1为0或1则可计算出n0的值了
  13. 一颗二叉树的高为h,节点度为0或2,则这颗二叉树最少有2h-1个
  14. 前缀编码:任何一个编码都不是其他任何编码的前缀(最左子串)
  15. 线索二叉树是一种逻辑和存储结构
  16. 引入二叉线索树的目的是加快查找节点的前驱和后继的速度
  17. n个节点的线索二叉树上含有的线索数为n+1个
  18. 若X是二叉中序线索树中一个有左孩子的节点,且X不为根,则X的前驱为X的左左子树中的最右节点
  19. 先序等于后序则它高度等于节点数或空
  20. 已知一颗二叉树的线序和后续不能唯一确定树的形状
  21. 满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
  22. 哈夫曼树没有度为1的节点
  23.  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sbfmjscs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值