二叉树2

让编程改变世界

Change the world by program


二叉树的性质

二叉树的性质一:在二叉树的第i层上至多有2^(i-1)个结点(i>=1)

这个性质其实很好记忆,考试的时候懂得画出二叉树的图便可以推出

二叉树的性质二:深度为k的二叉树至多有2^k-1个结点(k>=1)

这里一定要看清楚哦,是2^k再-1,老方法理解!

二叉树的性质三:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1

这个就比较困难了,需要推导获得 首先我们再假设度为1的结点数为n1,则二叉树T的结点总数n=n0+n1+n2 其次我们发现连接数总是等于总结点数n-1,并且等于n1+2*n2 所以n-1=n1+2*n2 所以n0+n1+n2-1=n1+n2+n2 最后n0=n2+1

二叉树的性质四:具有n个结点的完全二叉树的深度为⌊log₂n⌋+1

涉及到一些数学知识了,专门针对要考试的学生,只为学编程的路过即可 由满二叉树的定义结合性质二我们知道,深度为k的满二叉树的结点树n一定是2^k-1 那么对于满二叉树我们可以通过n=2^k-1倒推得到满二叉树的深度为k=log₂(n+1) 由于完全二叉树前边我们已经提到,它的叶子结点只会出现在最下面的两层,我们可以同样如下推导 那么对于倒数第二层的满二叉树我们同样很容易回推出它的结点数为n=2^(k-1)-1 所以完全二叉树的结点数的取值范围是:2^(k-1)-1 < n <= 2^k-1 由于n是整数,n <= 2^k-1可以看成n < 2^k 同理2^(k-1)-1 < n可以看成2^(k-1) <= n 所以2^(k-1) <= n < 2^k 不等式两边同时取对数,得到k-1<=log₂n<k 由于k是深度,必须取整,所以k=⌊log₂n⌋+1

二叉树的性质五:如果对一棵有n个结点的完全二叉树(其深度为⌊log₂n⌋+1)的结点按层序编号,对任一结点i(1<=i<=n)有以下性质:

如果i = 1,则结点 i 是二叉树的根,无双亲;如果i > 1,则其双亲是结点⌊i/2⌋

如果2i > n,则结点 i 无做左孩子(结点 i 为叶子结点);否则其左孩子是结点2i

如果2i+1 > n,则结点 i 无右孩子;否则其右孩子是结点2i+1

文字描述太折腾,直接看图听小甲鱼分析: [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/BdsUA5Wa3shZUQQA199']视频下载[/Downlink] [Downlink href='http://urlxf.qq.com/?BrUjiaA']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2013/04/02/3846315.html

二叉树2 - 数据结构和算法44相关推荐

  1. java数据结构编写二叉树_java 数据结构与算法 BinaryTree二叉树编写

    import java.util.Stack; public class BinaryTree { TreeNode root = null; public BinaryTree() { this.r ...

  2. 数据结构与算法-- 二叉树中和为某一值的路径

    二叉树中和为某一值的路径 题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为给定值的所有路径.从树的根节点开始往下一只到叶子节点所经过的节点形成一条路径. 我们用二叉树节点的定义沿用之前文章中 ...

  3. java数据结构和算法 北风 下载_Java] 北风Java20集+44集版数据结构算法基础教程

    20集版本 第一讲数组.rar 第二讲简单排序.A危i 第三讲栈和队列.A危i 第四讲链表.A危i 第五讲双端链表和双向链表.A危i 第六讲递归的应用.A危i 第七讲递归的高级应用.A危i 第八讲希尔 ...

  4. C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划

    C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...

  5. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  6. js遍历树节点下的所有子节点_【数据结构与算法】(3)——树和二叉树

    树 树的基本概念 树是一种非线性的数据结构,样子如图所示: 树的主要特点是树中的数据是分层存储的,每个元素称为树的节点,最顶层有且只有一个元素,称为根节点,其余层可以有任意数量的节点.除了根节点,其余 ...

  7. 树的高度从零还是一开始数_数据结构与算法之1——树与二叉树

    数据结构一直是让人头疼,面试遇到手撕算法题时真是慌得不行,从啥也不会刷题刷到游刃有余,路漫漫其修远兮~~.本人还是个算法菜鸟,而且还是想转行互联网的半吊子(好想拿大厂offer啊,幻想中..),希望能 ...

  8. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  9. 常考数据结构与算法:求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

最新文章

  1. Anaconda:虚拟环境
  2. 谷歌发布 RLDS,在强化学习生成、共享和使用数据集
  3. 如何通过在ViewPager中用手指轻扫来禁用分页,但是仍然能够以编程方式轻扫?
  4. 戴森要搞能爬楼梯的吸尘器,两项专利设计现已提交
  5. FreeBSD中3D加速功能的启用
  6. python学习心得--编码格式篇
  7. 剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
  8. Linux 网络及IP概述
  9. mybaits自连接查询
  10. Cygwin 下载极速源推荐
  11. html仿京东快速购物导航,jQuery仿京东楼层滑动侧边栏高亮(原创)
  12. 企业主要培养三大方向的思考习惯
  13. Promise--优雅的异步回调解决方案
  14. Vue基础应用-实现计数器
  15. 通过poi读取ppt元素demo
  16. order by case when 使用方法
  17. python 将QQ聊天记录生成词云图
  18. [干货] 一文看懂numpy.nonzero() 与 numpy.argwhere()非零元素处理
  19. 【知识小集】☞Excel之VBA编程语句集300句
  20. 会议邀请〡第六届全国高校电子信息类课程教学研讨会邀请函

热门文章

  1. nodejs 获取内存,网络 ,连接 ,磁盘等等
  2. golang和C的输出格式化对齐
  3. ffmpeg 2.6.3在Linux下的编译
  4. python条件语句有哪些_Python 条件语句
  5. 95-34-035-Context-HeadContext和TailContext
  6. 【Flink】Flink 的 slotSharingGroup 有什么用
  7. 【Elasticsearch】Elasticsearch ICU现在可以理解表情符号了!
  8. 【es】es 分布式一致性原理剖析(二)-Meta篇
  9. 60-100-022-使用-MySQL 开启全局查询日志
  10. 【java】java AsyncHttpClient使用