$treap$ (树堆)= $tree$ (树) + $heap$ (堆) 显然,这个名字一定是二叉排序树和堆的结合 事实就是这样 怎么定义? 是一棵二叉树,但并不一定是完全二叉树 按权值形成二叉排序树,即左边比"我"小,右边比"我"大 按随机给的值形成一棵堆,以小根堆为例,即"我"的孩子的随机值小 ...
分类:
其他好文 时间:
2018-03-11 02:49:52
阅读次数:
216
http://www.lydsy.com/JudgeOnline/problem.php?id=1095 点分树+堆 请去看 http://www.cnblogs.com/TheRoadToTheGold/p/8463436.html 线段树维护括号序列 对树进行dfs,入栈时加一个左括号,出栈时加 ...
分类:
其他好文 时间:
2018-02-27 10:21:21
阅读次数:
162
堆是一种数据结构,最大堆性质:堆中的节点值总是不大于其父节点的值,堆是一颗完全二叉树。 堆排序:利用堆将数组进行排序,堆中的根节点存储的是最大值,由此将队中的值先插入操作,再进行去除最大值放到排序数组中,heapify过程。 最大索引堆:堆中存储的元素是数组的索引 ...
分类:
编程语言 时间:
2018-02-18 21:55:00
阅读次数:
247
前面我们介绍了树这种数据结构,树是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合,把它叫做“树”是因为它看起来像一棵倒挂的树,包括二叉树、红黑树、2-3-4树、堆等各种不同的树,有对这几种树不了解的可以参考我前面几篇博客。而本篇博客我们将介绍另外一种数据结构——图,图也是计算机程 ...
分类:
编程语言 时间:
2018-02-14 18:20:37
阅读次数:
210
堆排序是由1991年的计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特.弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了的一种排序算法( Heap Sort ); 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是 ...
分类:
编程语言 时间:
2018-02-05 23:27:10
阅读次数:
259
完全二叉树叫做堆。 完全二叉树就是最后一个节点之前不允许有不满的节点,就是不允许有空洞。 可以使用数组来做完全二叉树(堆)。 堆分为大顶堆和小顶堆。大顶堆就是根节点上的数字是最大的,小顶堆就是根节点上的数字是最小的堆。 在堆里面的操作包括两种:插入新的节点和删除根节点。 插入新节点的操作时向上渗透。 ...
分类:
编程语言 时间:
2018-01-25 00:19:47
阅读次数:
166
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2151 这道题因为优先队列不怎么会用,而且手写堆的代码也不长,也想复习一下手写堆的写法……结果……WAWAWAWAW……看来我对堆的认识还是太浅薄了…… 这道题,如果没有限制不能选相邻的两个 ...
分类:
其他好文 时间:
2017-12-21 13:02:58
阅读次数:
160
二叉树:数据结构的一种。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。 堆实质上 ...
分类:
编程语言 时间:
2017-12-18 18:42:20
阅读次数:
197
05-树7 堆中的路径(25 分) 将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。 将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任 ...
分类:
其他好文 时间:
2017-12-18 12:17:56
阅读次数:
160
题目 输入样例: 5 3 46 23 26 24 10 5 4 3 输出样例: 24 23 10 46 23 10 26 10 基本思路 实现小顶堆时,可以把输入变为负数输入大顶堆。 代码 总结 ...
分类:
其他好文 时间:
2017-12-08 12:10:01
阅读次数:
105