码迷,mamicode.com
首页 >  
搜索关键字:头指针    ( 482个结果
13:在O(1)时间删除单链表节点
题目:给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。解析: 删除单向链表中的一个节点,常规做法是必须找到待删除节点的前一个节点才能实现,而这样做的时间复杂度是O(n),无法满足要求。 创新想法:当我们想删除一个节点时,并不一定要删除节点本身,可以用当前节点保存它下一节点的值,然后删除它的下一个节点。情况案例: 1. 输入节点为NULL 2. 单链表只有一个节点,即...
分类:其他好文   时间:2015-07-06 16:03:01    阅读次数:99
[数据结构]队列之链式队列的类模板实现
链式队列是基于单链表的一种存储表示 队列的对头指针指向单链表的第一个节点,队尾指针指向单链表的最后一个节点, 退出一个元素 则删除对头指针的节点,添加元素则在队尾增加一个节点 使用条件:数据元素变动比较大的情况。不存在溢出的情况 队列的抽象基类: #ifndef QUEUE #define QUEUE //队列的抽象基类 template class Queue { publi...
分类:其他好文   时间:2015-06-23 18:00:17    阅读次数:140
数据结构学习之循环队列(顺序存储)
【摘要】队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 这样有个缺陷,空间利用率不高,所以我们直接学习循环队列(基于连续内存的)。 (1)设计队列数据结构typedef struct _QUEUE_NODE { int* pData; int length;//队列长度 int head ;//队头指针...
分类:其他好文   时间:2015-06-19 11:53:13    阅读次数:103
字典树(Trie)
字典树,顾名思义,就是一种对字母等字符串进行处理的一种特殊数据结构。说白了,就是二十六叉树。定义一个头指针,每次从头指针开始操作。 有两种常用的操作: 1.查询某个字符串的出现次数。 每个节点的count置为0,直到这个字符串结束,在末尾处count++.这样,就记录了该字符串的出现次数。 2.查询某个字符串特定序列出现的次数。 每个节点的count初始化为0,当读入...
分类:其他好文   时间:2015-06-17 15:21:18    阅读次数:100
双向链表(4) - 排序二叉树转换为循环双向链表
构建一个递归函数treeToList(Node root),将一棵已排序的二叉树,调整内部指针,使之从外面看起来,是一个循环双向链表。其中前向指针存储在"small"区域,后向指针存储在"large"区域。链表需要进行调整进行升序排序,并返回链表头指针。 下面的这篇文章详细解释了这个转换的过程。 http://cslibrary.stanford.edu/109/TreeListRecursi...
分类:编程语言   时间:2015-06-14 15:14:41    阅读次数:167
双向链表(2) - 删除节点
在双向链表中删除一个指定的节点,可以分为下面的这3种情况: (a) 原始的双向链表 (b) 删除头节点后 (c) 删除中间节点后 (d) 删除尾节点后 算法 假设需要被删除的节点称之为delNode. 1) 如果delNode为头节点,则将头指针指向后续的节点。 2) 如果delNode的前向节点存在,则将前向节点的后向指针置为delNode...
分类:其他好文   时间:2015-06-14 01:55:35    阅读次数:252
双向链表(3) - 反转双向链表
实现双向链表的反转。参考下面的例图: (a) 原始双向链表 (b) 已经反转的双向链表 下面是一个用于反转双向链表的简单方法。所需要做的事情就是交换每个节点的前向指针和后向指针,然后调整链表的头指针和尾指针。...
分类:其他好文   时间:2015-06-14 01:53:25    阅读次数:312
从无头单链表中删除节点
1、从无头单链表中删除节点 一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个也不是最后一个节点)。将该节点删除。 A——>B——>C——>D       =====》     A——>C——>D 问题解析:由于只能单向遍历,故与删除B节点,无法得知B的前驱A,即无法像普通删除中那样让A的next指向C; 这里有个技巧,将C当做B,而B复制成C,则删除C节点即可...
分类:其他好文   时间:2015-06-13 17:13:38    阅读次数:175
如何判断单链表是否存在环
原文:http://blog.csdn.net/liuxialong/article/details/6555850如何判断单链表是否存在环给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少?解法:1、对于问题1,使用...
分类:其他好文   时间:2015-06-11 22:50:47    阅读次数:202
Rotate List
这里的k可能是比链表长度要大的数字,因此实际旋转的位置就是k%len(list)。如果这个计算结果等于零或者等于len(list),列表是不用旋转的。接下来如果是事例给出的正常情况,那么有三步就能完成旋转。(1)第一个辅助指针从头开始后移k个位置。(2)这时第二个辅助指针指向头指针,然后两个指针同时...
分类:其他好文   时间:2015-06-10 22:21:49    阅读次数:241
482条   上一页 1 ... 34 35 36 37 38 ... 49 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!