treap通过左右旋维护了一个二叉查找树,根据随机的优先级建立满足优先级大根堆的二叉查找树,在实践中有不错的食府,code也简单。cogs1829 普通平衡树题目大意:进行插入、删除、名次、前驱后继。思路:前面的三种操作都很普通,前驱后继有两种做法(非常不正统吧。。。):1)找到这个数的名次,然后+...
分类:
其他好文 时间:
2015-01-10 10:03:48
阅读次数:
251
触发器是一种特殊的存储过程,它在插入,删除或改动特定表中的数据时触发运行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有下面的作用:1.安全性。能够基于数据库的值使用户具有操作数据库的某种权利。# 能够基于时间限制用户的操作,比如不同意下班后和节假日改动数据库数据。# 能够基...
分类:
数据库 时间:
2015-01-09 13:55:17
阅读次数:
225
<?php
/**
*第二种——非循环顺序队列的实现方法
*此方法,对第一种实现方法进行了优化,出队时不再移动元素
*仅仅改变头指针的位置即可
*
*此方法的优缺点:
*优点:插入和删除的时间复杂度都已是O(1),效率比较高
*缺点:元素删除后,前面的空间就无法再进行利用,造成空..
分类:
Web程序 时间:
2015-01-09 01:43:49
阅读次数:
187
<?php
/**
*第一种——非循环顺序队列的实现方法
*队列的头元素在为数组的下标为0的元素
*这种方法的优缺点:
*优点:头元素始终在下标为0的第一个元素,因此不需要设置头指针
*缺点:元素出队是会移动大量元素,时间复杂度为O(n),效率比较低
*
*/
classSqQueue{
private$Sq..
分类:
Web程序 时间:
2015-01-09 01:43:21
阅读次数:
142
双指针思想,尾指针不断往后扫,当扫到有一个窗口包含了所有T的字符,然后再收缩头指针,直到不能再收缩为止。最后记录所有可能的情况中窗口最小的...
list容器就是一个双向链表,可以高效地进行插入删除元素。
构造函数
list c0; //空链表
list c1(3); //建一个含三个默认值是0的元素的链表
list c2(5,2); //建一个含五个元素的链表,值都是2
list c4(c2); //建一个c2的copy链表
list c5(c1.begin(),c1.end...
分类:
编程语言 时间:
2015-01-03 09:24:56
阅读次数:
209
1,双向链表简介。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。2,例子要求:完成双向链表的插入、删除以及查找,将学生管理系统使用的数组,以双向链表的方式实现,能够支持无限制的学生人数的增删改查以及保存。3,代码实现。#include #inc...
分类:
编程语言 时间:
2015-01-01 00:15:18
阅读次数:
318
哈希表是一种重要的存储方式,也是一种常见的检索方法。其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元。检索时采用检索关键码的方法。现在哈希表有一套完整的算法来进行插入、删除和解决冲突。在Java中哈希...
分类:
其他好文 时间:
2014-12-30 00:24:53
阅读次数:
250
最近在牛客网刷题,有一道题目是实现二分查找算法,由此便在咖啡店写了段代码,实现这个简单的算法。但同时自己还有一个问题(见最后),希望有朋友能帮忙解答。后期如果自己知道答案,我会自己更新在此。一. 算法介绍 优点:比较次数少,查找速度快,平均性能好; 缺点:要求待查表为有序表,且插入删除困难。 ...
分类:
编程语言 时间:
2014-12-27 17:23:49
阅读次数:
125
1.单链表结点定义的格式:
struct Link
{
type data;
struct Link *next;
};
虽然单链表插入、删除方便,不需要移动其他结点的优点,但是它也有一些缺点:
只能顺序访问,一旦断链就会丢失其中的数据,所以要注意一下。
2.单链表的遍历
?遍历就是逐个访问每个数据元素的过程。遍历是各种其他操...
分类:
编程语言 时间:
2014-12-27 12:47:01
阅读次数:
200