数据结构/可并堆 啊……换换脑子就看了看数据结构……看了一下左偏树和斜堆,鉴于左偏树不像斜堆可能退化就写了个左偏树。左偏树介绍:http://www.cnblogs.com/crazyac/articles/1970176.html体会:合并操作是可并堆的核心操作(就像LCT里的access),进....
分类:
其他好文 时间:
2015-03-15 19:46:37
阅读次数:
165
优先队列包括二叉堆、d-堆、左式堆、斜堆、二项队列等
1、二叉堆
堆是一棵被完全填满的二叉树,有可能例外的是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树。
堆序的性质:在一个堆中,对于每一个节点X,X的父亲的关键字小于(或等于)X中的关键字,根节点除外(它没有父节点)。完全二叉树可以用数组实现。...
分类:
其他好文 时间:
2014-11-30 20:10:24
阅读次数:
205
优先队列实现事件模拟:http://maozj.iteye.com/blog/676567d堆 左式堆 斜堆:http://blog.csdn.net/yangtrees/article/details/8252760二项队列:http://www.cnblogs.com/xing901022/ar...
分类:
编程语言 时间:
2014-10-31 15:34:39
阅读次数:
134
一个巨坑总算是填上了。。。从十一开始调直到今天才过掉,已经交了上50次了。。。在无数RE后才发现,本地评测真是啃爹啊啊啊啊!!!Mato大神说的好:"其实是一个超级大水题"。。。我是蒟蒻又被虐了。。。对于斜堆插入的最后一个节点,可以推出两点性质:(1)它一定是一个树中的极左节点(2)它肯定没有右子树...
分类:
其他好文 时间:
2014-10-18 16:45:36
阅读次数:
157
对于堆大家都不陌生,无非就是最大堆和最小堆之分,堆的使用很广泛,优先队列、求大叔组的前k个数都可以用堆实现,且时间复杂度低。但是对于堆的具体实现存在几种不同的方式,它们各有优势。根据堆底层的实现可分为顺序存储堆和链式存储堆,链式存储又分为左式堆、斜堆以及二项..
分类:
其他好文 时间:
2014-08-25 17:18:25
阅读次数:
248
概要本章介绍二项堆,它和之前所讲的堆(二叉堆、左倾堆、斜堆)一样,也是用于实现优先队列的。和以往一样,本文会先对二项堆的理论知识进行简单介绍,然后给出C语言的实现。后续再分别给出C++和Java版本的实现;实现的语言虽不同,但是原理一样,选择其中之一进行了解即可。若文章有错误或不足的地方,请不吝指出...
分类:
编程语言 时间:
2014-07-14 15:11:15
阅读次数:
353
实现优先队列结构主要是通过堆完成,主要有:二叉堆、d堆、左式堆、斜堆、二项堆、斐波那契堆、pairing 堆等。1. 二叉堆1.1. 定义完全二叉树,根最小。存储时使用层序。1.2. 操作(1). insert(上滤)插入末尾 26,不断向上比较,大于26则交换位置,小于则停止。(2). delet...
分类:
其他好文 时间:
2014-06-27 00:53:45
阅读次数:
369