一.堆介绍堆,是一棵完全二叉树,根的值大于左右子树中所有结点的值,左右子树也是堆,除此之外,对其它元素之间的大小关系(如左右子树之间元素大小关系)没有要求。这是大根堆,如果把“大于”换成“小于“,就是小根堆,这里都以大根堆为例。由于堆是完全二叉树,所以可以用..
分类:
编程语言 时间:
2015-06-05 17:55:09
阅读次数:
245
二叉树的存储结构有两种:顺序存储结构和链式存储结构。顺序存储结构对于满二叉树和完全二叉树来说,可以将其数据元素逐层存放到一组连续的存储单元中,如图6-3所示。用一维数组来实现顺序存储结构时,将二叉树中编号为i的结点存放到数组中的第i个分量中。如此根据性质6.7,可..
分类:
其他好文 时间:
2015-06-03 13:56:19
阅读次数:
120
二叉树的存储结构有两种:顺序存储结构和链式存储结构。顺序存储结构对于满二叉树和完全二叉树来说,可以将其数据元素逐层存放到一组连续的存储单元中,如图6-3 所示。用一维数组来实现顺序存储结构时,将二叉树中编号为i 的结点存放到数组中的第i 个分量中。如此根据性质6.7,可以得到结点i 的父结点、左右孩...
分类:
其他好文 时间:
2015-06-03 13:18:11
阅读次数:
121
二叉树的存储结构有两种:顺序存储结构和链式存储结构。
顺序存储结构
对于满二叉树和完全二叉树来说,可以将其数据元素逐层存放到一组连续的存储单元中,如图6-3 所示。用一维数组来实现顺序存储结构时,将二叉树中编号为i 的结点存放到数组中的第i 个分量中。如此根据性质6.7,可以得到结点i 的父结点、左右孩子结点分别存放在、2i 以及2i+1 ?i / 2? 分量中。
图6-3 顺序...
分类:
其他好文 时间:
2015-06-03 11:51:47
阅读次数:
226
转自:http://blog.csdn.net/brillianteagle/article/details/39118937一、完全二叉树的判断参考:http://blog.csdn.net/lilypp/article/details/6158699/【分析】根节点开始进行层次遍历,节点入队列,...
分类:
其他好文 时间:
2015-06-03 09:39:31
阅读次数:
115
什么是堆堆(heap),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开始执行,或者某些不短小、但很重要的作业,同样应当拥有优先权。而堆就是为了解决此类问题而设计的数据结构。二叉堆是一种特殊的堆,二叉堆是完全二叉树或者近似完全二叉树,二叉堆满足堆特性:父节点的键值总是保持固定的序...
分类:
编程语言 时间:
2015-05-31 23:17:41
阅读次数:
205
堆堆:经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子结点的值。最大堆和最小堆是二叉堆的两种形式。最大堆:根节点的键值是所有堆结点键值中最大者。最小堆:根节点的键值是所有堆结点键值中最小者。最大-最小堆:集结了他俩的优点。是最大层和最小层交替出现的二叉树,即最大层节点...
分类:
其他好文 时间:
2015-05-26 01:37:39
阅读次数:
222
完全二叉树(Complete Binary Tree):
设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。
解析:
任意的一个二叉树,都可以补成一个满二叉树。这样中间就会有很多空洞。在广度优先遍历的时候,如果是满二叉树,或者完全二叉树,这些空洞是在广度优先的遍历的末尾,所以,但我们遍历到空洞的...
分类:
其他好文 时间:
2015-05-25 09:56:19
阅读次数:
127
本文记录了使用C++模板实现了堆的基本操作,对于其他一些有用操作如IncreaseKey和DecreaseKey等则没有实现,这是因为使用模板把最小堆和最大堆揉在一起,对Key的增减我还没有找到比较好的处理方式,而现在写这个堆数据结构主要是因为在Hoffman树算法需要,基本操作已经够用了。
堆是一棵完全二叉树,所谓完全二叉树就是一棵从上倒下,从左到右依次填满每一个位置的二叉树,除了最后一层节点没...
分类:
其他好文 时间:
2015-05-14 16:35:04
阅读次数:
126
堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要.....
分类:
编程语言 时间:
2015-05-14 15:45:37
阅读次数:
187