adamans

满二叉树

定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。
也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。
一颗树深度为h,最大层数为k,深度与最大层数相同,k=h;
它的叶子数是: 2^h  
第k层的结点数是: 2^(k-1)  
总结点数是: 2^k-1 (2的k次方减1)总节点数一定是奇数。

完全二叉树

一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。
完全二叉树的节点数是任意的,从形式上讲它是个缺失的的三角形,但所缺失的部分一定是右下角某个连续的部
分,最后那一行可能不是完整的,对于k层的完全二叉树,节点数的范围2^ (k - 1) -1 < N< 2^k - 1;

设二叉树的深度为h,除第 h 层外,
其它各层 (1~h-1) 的结点数都达到最大个数,
第 h 层所有的结点都连续集中在最左边,
这就是完全二叉树。

含义区别

汉语: 满和完全差不多是一个意思
英文在此处的含义:与满二叉树中编号为i的结点在二叉树中的位置相同,完全重合

属性区别

满二叉树是完全二叉树的特殊形态, 即如果一棵二叉树是满二叉树, 则它必定是完全二叉树。
完全二叉树不一定是满二叉树。

为什么说使用完全二叉树易于存储且便于索引?

1. 怎么易于存储呢?使用一个数组就可以完全存储一棵二叉树。
2. 怎么便于索引呢?假设每个node的标为i, 那么他的左子节点就是2*i, 右子节点就是2*i+1。

 

分类:

技术点:

相关文章:

  • 2021-04-22
  • 2021-11-27
  • 2022-12-23
  • 2021-05-16
  • 2022-12-23
  • 2022-01-19
  • 2022-02-07
  • 2021-07-11
猜你喜欢
  • 2021-12-05
  • 2021-07-07
  • 2021-11-04
  • 2021-11-04
  • 2021-11-28
相关资源
相似解决方案