您的位置:首页 > 其它

链队列:队列的链式存储结构

2012-08-06 00:00 1786 查看

链队列的结构

队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称为链队列。

为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端结点。一个普通的链队列大概是下面这个样子:



当队列为空时,front和rear都指向头结点。



链队列的结构体定义

与链栈一样,我们分两步定义链队列的结构体,首先是按链表来定义链队列的结点。

/* QElemType类型根据实际情况而定,这里假设为int */
typedef int QElemType;
typedef struct QNode	/* 结点结构 */
{
QElemType data;
struct QNode *next;
} QNode,*QueuePtr;


然后再定义 LinkQueue 的结构体。实际上只要定义队头和队尾指针就可以了。

typedef struct			/* 队列的链表结构 */
{
QueuePtr front,rear; /* 队头、队尾指针 */
} LinkQueue;

合起来,链队列的结构体定义为:


#include "stdio.h"/* QElemType类型根据实际情况而定,这里假设为int */ typedef int QElemType; typedef struct QNode /* 结点结构 */ { QElemType data; struct QNode *next; } QNode,*QueuePtr;typedef struct /* 队列的链表结构 */
{
QueuePtr front,rear; /* 队头、队尾指针 */
} LinkQueue;
int main()
{
return 0;
}

延伸阅读

此文章所在专题列表如下:

栈的定义与大概理解

栈的抽象数据类型ADT

顺序栈:栈的顺序存储结构

顺序栈的进栈操作

顺序栈的出栈操作

获取顺序栈的栈顶元素

链栈:栈的链式存储结构

链栈的进栈操作

链栈的初始化与遍历

链栈的出栈操作

链栈的置空操作与判断链栈是否为空

为什么要使用栈这种数据结构

递归,栈的重要应用之一

栈是如何实现递归的

接触后缀表达式(逆波兰表示法)

图解后缀表达式的计算过程

将中缀表达式转化为后缀表达式

开始学习队列这个数据结构

队列的抽象数据类型ADT

顺序队列:队列的顺序存储结构

顺序队列的入队操作

顺序队列的出队操作

顺序队列置空与判断操作

队列顺序存储结构的不足

关于循环队列的一些讲解

链队列:队列的链式存储结构

链队列的初始化操作

链队列的入队操作

链队列的出队操作

补完链队列的其它常见操作

循环队列与链队列的优劣势
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链队列 结构体