二叉树分类很多,其中满二叉树和完全二叉树比较特殊,因为这两种二叉树效率很高,这里记录几条相关性质。

首先是满二叉树:从形象上来说满二叉树是一个绝对的三角形,也就是说它的最后一层全部是叶子节点,其余各层全部是非叶子节点,如果用数学公式表示那么其节点数n=2^k-1(2的k次方减一)其中k表示深度,也就是层数。也就是说满二叉树的节点数是一系列固定的数,比如说,1,3,7,15…如果节点数不是这个序列中的数,那么他肯定不是满二叉树,当然了,反之,是不成立的。

由于它的节点数和形状固定,我们可以发现很多其数学公式性质。

  1. 首先是节点数和深度的关系 n=2^k-1

  2. 第二是第i层上的节点数为2^(i-1)

  3. 第三是给所有的节点编号(从1号开始而不是从零号开始)那对于每一个编号为i的节点我们可以根据i的大小,判断出他是左节点还是右节点,父节点是谁,子节点是谁。比如我们给一个编号13的节点,那么他是基数所以他是右节点,因为节点的左右变化和数据的基偶性是同步变化的。他的父节点是13/2=6(是从1好开始的)他的左子节点是132=26右子节点是132+1=27同理还可以求他的兄弟节点,父节点的父节点,

总而言这在满二叉树中只要有了一个节点的编号那么他在整个二叉树中的位置就确定了,正是由于这个原因,我们更倾向于使用顺序结构而不是链式结构来存储满二叉树

然而由于满二叉树的节点数必须是一个确定的数,而非任意数,他的使用受到了某些限制,为了打破另一个限制,我们定义一种特殊的满二叉树——完全二叉树。

完全二叉树的节点个数是任意的,从形式上来说他是一个可能有缺失的三角形,但所缺部分肯定是右下角的某个连续部分。这样说不玩整,更准确来说,我们可以说他和满二叉树的区别是,他的最后一行可能不是完整的,但绝对是右方的连续部分缺失。可能听起来有点乱,用数学公式讲,对于K层的完全二叉树,其节点数的范围是:2的(k-1)次方-1< N <= 2的k次方-1;

一棵深度为k且有2的k次方减1个结点的二叉树是满二叉树。
深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。


满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树

完全二叉树和满二叉树区别相关推荐

  1. 完全二叉树和满二叉树的区别

    完全二叉树和满二叉树的区别如下: 1.完全二叉树是深度为k,有n个结点的二叉树,当且仅当其每一个结点,都与深度为k的满二叉树中编号从1至n的结点逐一对应的二叉树: 2.完全二叉树的叶子结点只可能在层次 ...

  2. 完全二叉树与满二叉树的区别+计算二叉树深度

    1.完全二叉树与满二叉树的区别: 满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树.  完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 ...

  3. 完全二叉树与满二叉树

    去笔试了很多次,每次都有有关于二叉树的题目,而且其中最多的是关于完全二叉树,然而完全二叉树在哥心中的形态一直很模糊,究其原因是我把完全二叉树和满二叉树搞混了.其实满二叉树是完全二叉树的特例,因为满二叉 ...

  4. 二叉树、平衡二叉树、完全二叉树、满二叉树

    基本概念 结点的层次(Level)从根开始定义,根为第一层,根的孩子为第二层. 二叉树的高度:树中结点的最大层次称为树的深度(Depth)或高度. 二叉树 在计算机科学中,二叉树是每个结点最多有两个子 ...

  5. 【algods】4.树和二叉树、完全二叉树、满二叉树、二叉查找树、平衡二叉树、堆、哈夫曼树、散列表...

    本博客内容耗时4天整理,如果需要转载,请注明出处,谢谢. 1.树 1.1树的定义 在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结 ...

  6. 完全二叉树与满二叉树的区别(有图)

    先看图: 完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数, 第 h 层所有的结点都连续集中在最左边 满二叉树:深度为k且有2^k-1个结点的二叉树称为 ...

  7. 完全二叉树 和 满二叉树的区别

    完全二叉树 叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树.如下图 完全二叉树的特点是: 1)只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的 ...

  8. 完全二叉树和满二叉树

    满二叉树 国内教材: 除最后一层节点没有子节点外,其余的节点都有左右两个子节点 深度为k的完全二叉树拥有2^k-1个节点 国外教材: 二叉树的节点是满的,没有空的,也就是每个节点要么没有子节点,要么有 ...

  9. 树、二叉树(完全二叉树、满二叉树)概念图解

    1.树的定义 树是n个结点的有限集合,有且仅有一个根结点,其余结点可分为m个根结点的子树. 2.树的概念 结点的度:一个结点拥有子树的个数称为度.比如A的度为3,C的度为2,H的度为0.度为0的结点称 ...

最新文章

  1. 修改表结构添加外键约束,默认外键名
  2. Python-Django-Ajax进阶
  3. [css] 什么是逐帧动画?
  4. mysql shell eof_shell脚本 exit命令 EOF用法 数组用法
  5. wpf绑定treeview 带查找_如何查找,修复和避免C#.NET中内存泄漏的8个最佳实践
  6. Ubuntu安装之各种坑
  7. 【PC微信探秘】用易语言编写一个微信DLL注入器
  8. 英语十大词性之三 - 形容词
  9. npm install 时 WARN No repository field Or No license field
  10. alert#40;1#41; to xss.haozi.me with #0x02
  11. 学计算机小学教师资格证,教师资格证我现在在一间小学教计算机,但现在 – 手机爱问...
  12. C语言求最小公倍数和最大公约数三种算法(经典)
  13. ocr人脸识别是什么原理,ocr的工作原理是什么
  14. 默哀日、灾难日,纪念日,哀悼日等网站都变成黑白色
  15. 阿里云服务器如何初始化云盘(跟换系统)?初始化云盘和跟换操作系统的区别?
  16. 为啥翻唱的也特别好听呢,听J Fla 的 despacito
  17. android debug set screen rotation
  18. jdk1.8中HashMap扰动函数及数组长度为什么是2的n次方介绍
  19. JS字符串分割转为树结构参考
  20. objdump 命令

热门文章

  1. Redis工具类 (拿来就用)
  2. 《厚黑学》| 脑中固有学问
  3. 月薪两三万的人,都是干啥的?
  4. 猫眼APP抓包——爬虫
  5. sogou map 开发 1
  6. 密码加密与微服务鉴权JWT
  7. 基于java的B2C的网上拍卖系统
  8. Position属性四个取值用法和区别
  9. 史上最全脉搏心率传感器PulseSensor资料(电路图+中文说明书+最全源代码)
  10. 遍历字符串(JAVA)