码迷,mamicode.com
首页 >  
搜索关键字:头指针 插入删除    ( 1800个结果
双向链表实现队列
双向链表的结点包含前驱指针和后继指针,队列入队操作是在双向链表尾部添加元素,队列的出队操作是把双向链表的头结点删除,判断队列是否为空只要判断双向链表的头指针是否指向了NULL即可。 # include # include using namespace std; struct queueNode { int val; queueNode *pre; queueNode *next;...
分类:其他好文   时间:2014-08-02 12:55:03    阅读次数:193
noip2010提高组题解
第一题:机器翻译模拟可以用STL里的vector或list实现插入、删除、查找操作。第二题:乌龟棋动态规划用 f(i, j, k, t) 表示分别用了i张卡片1、j张卡片2、k张卡片3、t张卡片4能得到的最大分数,则f(i, j, k, t) = max{ f(i-1, j, k, t), f(i,...
分类:其他好文   时间:2014-08-02 12:43:13    阅读次数:188
二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 假设其数组长度为n,其算法复杂度为o(log(n)) 代码: #include using namespace std; bool BinarySearch(int data[],int start, int end, int number){ while(start...
分类:其他好文   时间:2014-08-01 09:14:51    阅读次数:228
二叉查找树(二叉排序树)创建,插入,删除操作。
二叉排序树 二叉排序树是一个基础的树的数据结构。应用非常多。它的特性就是,左孩子小于parent,右孩子大于parent. 寻找节点 寻找节点就是直接根据数值的大小,从root节点开始遍历,大于当前遍历节点就向它的右子树查找,相反则查找它的左子树。然后返回。 查找最大最小节点 直接根据root节点,遍历到最右就是最大节点,遍历到最左,就是最小节点。 插入节点 ...
分类:其他好文   时间:2014-08-01 00:01:20    阅读次数:247
单链表逆转
// p 为指向非空单链表中第一个结点的指针,本算法逆转链表并返回逆转后的头指针。基本思路是:如果链表中只有一 个结点,则空操作,否则先逆转a2开始的链表,然后将 a1联接到逆转后的链表的表尾(即a2)之后。 1 //递归方法逆转 单链表 2 Node* RecReverseList(Node* ....
分类:其他好文   时间:2014-07-31 12:25:36    阅读次数:218
StringBuffer的用法
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作...
分类:其他好文   时间:2014-07-30 20:07:04    阅读次数:195
数据结构和算法设计专题之---判断单链表中是否有环,环的长度,环的入口节点
题目: 给定一个单链表,只给出头指针head: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?   解法: 1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。 2、对于问题2,记录下问题1的碰撞点p,sl...
分类:其他好文   时间:2014-07-29 18:03:02    阅读次数:191
SPOJ GSS6 4487. Can you answer these queries VI (SPLAY)
题目大意: 四个操作: I X Y 在x位置插入y D x 删除x位置的数 R x y 用y替换x位置上的数字 Q x y 求出[x,y]上的最大子序列的和。 思路分析: 对于动态维护序列肯定是splay了。 现在就考虑以下几个问题。 之前我们知道线段树处理连续的子序列的和是用区间合并的。那splay上怎么做。 考虑边界,如儿子为 0 或者是冗余节点怎么办? 初始化的...
分类:其他好文   时间:2014-07-27 11:09:32    阅读次数:257
给定链表的头指针和一个结点指针,在O(1)时间删除该结点
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。具体思路:把头结点的数据直接copy到要删除的结点处,然后头指针向后移动一个结点,再free掉原来的头指针指向的结点,这样等于把要删除的结点删除了。当链表只有一个结点或者要删除的结点是头结点或尾结点时,这种方法也是成立的,所以不需要做特...
分类:其他好文   时间:2014-07-25 13:54:31    阅读次数:204
平衡查找树(2-3-4 树)
二叉查找树(Binary Search Tree)在很多情况下可以良好的工作,但它的限制是最坏情况下的渐进运行时间为 O(n)。平衡查找树(Balanced Search Tree)的设计则是保证其高度在最坏的情况下为 O(log n),其插入、删除和查找可以实现渐进运行时间 O(log n)。本文...
分类:其他好文   时间:2014-07-24 14:44:35    阅读次数:282
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!