【理论】 - 树、二叉树(满二叉树、完全二叉树)和堆
发布日期:2021-06-30 17:02:15
浏览次数:2
分类:技术文章
本文共 633 字,大约阅读时间需要 2 分钟。
1、树的定义
- n个结点的有限集合
- 有且仅有一个根结点
- 其余结点可分为m个根结点的子树。
2、二叉树
- 每个节点最多拥有两个子节点
- 左子树和右子树是有顺序的不能任意颠倒。
3、二叉树遍历
前序遍历(前根遍历):根——>左——>右
中序遍历(中根遍历):左——>根——>右
后序遍历(后根遍历):左——>右——>根
4、满二叉树
- 高度为h
- 由2^h-1个节点构成的二叉树
5、完全二叉树
-
完全二叉树是由满二叉树而引出来的
-
深度为h,
-
除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数
(即1~h-1层为一个满二叉树), -
第 h 层所有的结点都连续集中在最左边
堆一般都是用完全二叉树来实现的。
【完全二叉树如何储存】完全二叉树中父亲和儿子之间有着神奇的规律,我们只需用一个一维数组就可以存储完全二叉树。
首先将完全二叉树进行从上到下,从左到右编号。
完全二叉树的一个父结点编号为k,那么它左儿子的编号就是2k,右儿子的编号就是2k+1。如果已知儿子(左儿子或右儿子)的编号是x,那么它父结点的编号就是x/2。6、堆
堆是什么?堆是一种特殊的完全二叉树。
- 所有父结点都比子结点要小的完全二叉树我们称为最小堆。
- 反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。
如下图所示,左边为最小堆,右边为最大堆。
为什么是堆?归档
- https://blog.csdn.net/qq_41117236/article/details/81029618
转载地址:https://lawsssscat.blog.csdn.net/article/details/104229921 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月24日 17时04分56秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
利用ffmpeg合并音频和视频
2019-04-30
刷好老毛子系统进不了老毛子系统后台的解决办法
2019-04-30
Parallels Desktop 16 不能联网的解决办法
2019-04-30
SLAM中TUM数据集更改图片名字
2019-04-30
synchronized和CAS锁的区别【图文教程】
2019-04-30
配置nginx只允许域名访问,禁止ip访问【图文教程】
2019-04-30
Java代理【图文教程】_第1章_静态代理
2019-04-30
Java代理【图文教程】_第2章_jdk动态代理
2019-04-30
AOP面向切面编程【图文教程】_第1章
2019-04-30
AOP面向切面编程【图文教程】_第2章
2019-04-30
二叉树之前序、中序、后序和层次遍历【图文教程】
2019-04-30
java类的构成
2019-04-30