单向链表中的结点结构如下:typedef struct node{ char info; struct node *link; }NODE; 其中数据域存放线性表中元素的值,指针域保存指向下一个元素的指针(即下一个元素的地址)。链表中至少需要一个头指针head和表头节点。其中head是...
分类:
其他好文 时间:
2014-10-12 14:00:57
阅读次数:
224
给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};函数的声明如下:void DeleteNode(ListNode* pListHead,...
分类:
其他好文 时间:
2014-10-09 20:04:27
阅读次数:
125
这两道题都是用的尺取法。尺取法是《挑战程序设计竞赛》里讲的一种常用技巧。就是O(n)的扫一遍数组,扫完了答案也就出来了,这过程中要求问题具有这样的性质:头指针向前走(s++)以后,尾指针(t)要么不动要么也往前走。满足这种特点的就可以考虑尺取法。poj3061 比较简单,也可以用二分做,时间复杂度O...
分类:
其他好文 时间:
2014-09-25 02:11:38
阅读次数:
245
继续我们昨天所说的单链表。单链表也是一种线性表,所以总得有个头有个尾。链表中第一个结点的存储位置叫做头指针,那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点,其实就是上一个的后继指针指向的位置。雅加达娱乐城这里有个地方要注意,就是对头指针概念的理解,这个很重要。“链表中第一个结点的存储...
分类:
其他好文 时间:
2014-09-24 13:16:56
阅读次数:
198
链队列,即队列的链式存储结构,它是仅在表头删除和表尾插入的单链表,因此一个链队列需要设置两个分别指示队头元素和队尾元素的指针,为了操作方便,给链队列添加一个头结点,并令队头指针指向头结点,由此,空的链队列的判断条件就是队头指针和队尾指针均指向头结点。
链队列的类型描述:
//链队列类型描述
typedef int QElemType;
typedef struct node{
QElemTy...
分类:
其他好文 时间:
2014-09-22 01:57:11
阅读次数:
189
给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少?解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出...
分类:
其他好文 时间:
2014-09-22 01:38:21
阅读次数:
369
1.问题描述
假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个),请将该节点从单链表中删除。
如下图所示:
这种情况大家都知道,将下一个节点的data和next拷贝到当前节点,并将当前节点的next设置为下下个节点,然后释放下一个节点所占内存(free),
如果红字条件去掉:
还用上面的方法就有问题,一般上面方法的...
分类:
其他好文 时间:
2014-09-18 18:56:24
阅读次数:
109
在单链表中,每一个结点包含两部分:存放每一个数据元素本身信息的数据域和存放其直接后继存储位置的指针域。
单链表结点的类型描述:
typedef int ElemType;
typedef struct node{
ElemType data;
struct node *next;
}LNode,*LinkList;
单链表的存取必须从头指针开始...
分类:
其他好文 时间:
2014-09-17 12:08:22
阅读次数:
233
判断俩个链表是否相交给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?ANSWER:struct Node { int data; int Node *next;};...
分类:
其他好文 时间:
2014-09-16 20:34:30
阅读次数:
172
全排列函数next_permutationSTL中专门用于排列的函数(可以处理存在重复数据集的排列问题)头文件:#includeusingnamespacestd;调用:next_permutation(start,end);注意:函数要求输入的是一个升序排列的序列的头指针和尾指针.用法: 1 //...
分类:
其他好文 时间:
2014-09-14 20:33:27
阅读次数:
361