链队列,即队列的链式存储结构,它是仅在表头删除和表尾插入的单链表,因此一个链队列需要设置两个分别指示队头元素和队尾元素的指针,为了操作方便,给链队列添加一个头结点,并令队头指针指向头结点,由此,空的链队列的判断条件就是队头指针和队尾指针均指向头结点。
链队列的类型描述:
//链队列类型描述
typedef int QElemType;
typedef struct node{
QElemTy...
分类:
其他好文 时间:
2014-09-22 01:57:11
阅读次数:
189
描述:
链栈,即栈的链式存储结构,链栈通常使用不带头结点的单链表来表示,因此其结点的结构和单链表的结点结构相同。
在一个链栈中,栈底就是链表的最后一个结点,而栈顶总是链表的第一个结点。因此,新入栈的元素即为链表中采用头插法新加入的结点,一个链栈可以由栈顶指针唯一确定,当top为NULL时,则表示该栈是一个空的链栈。
实现:
...
分类:
其他好文 时间:
2014-09-21 01:13:09
阅读次数:
234
昨天研究了链队列的入队操作,那么现在再来看看链队列的出队操作吧。出队操作时,就是头结点的后继结点出队,将头结点的后继改为它后面的结点,若链表除头结点外只剩一个元素时,则需将rear指向头结点。还是画个图理解一下吧。一般情况下,链队列的出队图示:老品牌娱乐城如果链队列只剩下一个元素的时候,出队则如下图...
分类:
其他好文 时间:
2014-09-19 15:33:35
阅读次数:
376
(一)顺序表1.基本概念: 首元结点:存储第一个数据元素的结点。 头结点:在链表的首元结点之前附设一个结点,便于对首元结点操作。 头指针:指向链表中的第一个结点。 插入/删除:在顺序表中插入或删除一个元素,需要平均移动一半个元素,具体移动的元素个数与元素位置有关。 在单链表中,除了首元结点...
分类:
其他好文 时间:
2014-09-10 15:35:30
阅读次数:
259
在单链表或者双链表中,最后一个节点的指针指向头结点就形成了循环列表,这样使链表首尾相连从任意一个节点出发都可以找到其他节点。循环列表的操作和非循环列表差不多就不啰嗦了,只要记住循环链表首尾相连就OK了(好废话。。。)。代码中用循环链表解决了约瑟夫问题。代码鲁棒性不是很强,仅仅用来复习啦。...
分类:
其他好文 时间:
2014-09-03 16:53:06
阅读次数:
210
#include#include using namespace std;struct Node{ int data; Node *next;};//没有头结点的插入新节点Node* AddNode(Node *head,int num)//如果是void 类型的 那么head要用指向指...
分类:
其他好文 时间:
2014-09-02 19:34:45
阅读次数:
217
题目:Insertion Sort ListSort a linked list using insertion sort.题目比较简单,就是对链表进行插入排序个人思路:1,用插入排序的方法来解就行,注意链表的处理,可以给原链表加个头结点来使得处理统一(我的代码没有加,懒得改了)代码: 1 #inc...
分类:
其他好文 时间:
2014-09-01 12:21:53
阅读次数:
206
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反正后链表的头结点。#include#includetypedef struct node{ int Element; struct node *Link;}Node;Node *ReverseList(Node *first){...
分类:
其他好文 时间:
2014-08-25 16:48:44
阅读次数:
143
总结:其实就是反转链表。不过是反转中间一部分。要注意的是保存第一个结点的前继的指针; 若第一个结点是头结点,注意反转子串的尾结点变为头结点。
分类:
其他好文 时间:
2014-08-25 01:07:43
阅读次数:
198
按照书上的说法,引入头结点有一下两个优点:
由于开始结点的位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作和在表的其他位置上的操作一致,无须进行特殊处理。
无论链表是否为空,其头指针是指向头结点的非空指针,因此空表和非空表的处理也就一致了。
你可能会疑惑:难道非得要头指针吗?难道没有头结点,插入、删除、空表的处理就不一致了吗?(貌似有一些同学和我有同样的疑问)...
分类:
其他好文 时间:
2014-08-16 22:33:51
阅读次数:
300