`

C语言链队列的基本操作

 
阅读更多

//链队列的初始化及入队出队操作,XP3+VC6.0 运行下通过。
#define OVERFLOW -2
#define ERROR 0
#include <stdio.h>
typedef int QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;

typedef struct {
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}LinkQueue;

//初始化队列
void InitQueue(LinkQueue *Q)
{
Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
if (!Q->front) exit(OVERFLOW);
Q->front->next=NULL;
}
//入队列
void EnQueue(LinkQueue *Q,QElemType e)
{
//插入元素e为Q的新的队尾元素
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p) exit(OVERFLOW);
p->data=e; p->next=NULL;
Q->rear->next=p;
Q->rear=p;
}
//出队列
void DeQueue(LinkQueue *Q, QElemType *e)
{
//若队列不空则删除Q的头元素,用e返回其值。
QueuePtr p;
if(Q->front==Q->rear) exit(ERROR);
p=Q->front->next;
*e=p->data; // 一定是*e
Q->front->next=p->next;
if(Q->rear==p) Q->rear=Q->front;
free(p);
}

void main()
{
LinkQueue *Q;
QElemType e;
int i;
InitQueue(&Q);
printf("请输入5个整数:");
for(i=0; i<5; i++)
{
scanf("%d",&e);
EnQueue(&Q,e);
}

printf("\n");
printf("输出结果为:");
while (Q->front!=Q->rear)
{
DeQueue(&Q,&e);
printf("%d,",e);
}
printf("\n");

}

运行结果:

请输入5个整数:50 60 80 20 100

输出结果为:50,60,80,20,100

 

分享到:
评论

相关推荐

    c语言数据结构 链队列的基本操作

    链队列的基本操作 (1)建立链表队列 (2)入队一个元素 (3)出队一个元素 c语言实现的哦!!! 配c语言版的数据结构!!

    链式队列的基本运算

    本程序共设计了单链表上多项式相加需要的的6个基本操作运算,分别是链式队列的入队,出队,遍历,长度,取队头,以及销毁队列操作。附带实验报告。

    链队列C程序

    链队列

    C语言单链队列的表示与实现实例详解

    C语言的队列(queue),是指先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。 而单链队列使用...

    用链栈实现链队列逆置(栈的指针的实现的应用)

    #include "linkstack.h" //将链栈基本操作包括进来 typedef struct node /*定义链队列结点类型*/ { datatype data; struct node *next; }linkqueue; typedef struct /*封装队头指针和队尾指针*/ { linkqueue *...

    数据结构(C语言版)——链队列(代码版)

    里面包含了c文件和exe文件,基本操作为:1:初始化链队列2:销毁链队列3:清空链队列4:链队列是否为空5:返回链队列头元素6:元素入队7:元素出队8:当前链队列长度

    头歌数据结构循环队列及链队列的基本操作

    头歌数据结构循环队列及链队列的基本操作 第1关循环队列的基本操作 第2关链队列的基本操作 稳过 栈是一种后进先出的数据结构,而在实际问题中还经常使用一种“先进先出”的数据结构。队列就是从日常生活中的排队...

    头歌 顺序表,链表,循环队列的基本操作和应用答案。

    头歌数据结构的题目: 顺序表的基本操作和应用 链表的基本操作和应用, 循环队列的应用 同时还有一些附加题,n皇后和钓鱼

    数据结构(表,队列等)的基本操作

    主要的数据结构(顺序表、链表、栈、队列、循环表和循环队列)的一些基本操作,适合初步学习数据结构人员参考,均是在win32下运行,调试通过

    数据结构之栈和队列的代码实现(C语言)

    这个资源主要是使用C语言实现的栈和队列两种数据结构基本操作,包含栈的入栈、出栈,队列的入队列、出队列的相关操作,具体包含如下几个: 1、顺序栈:入栈、出栈、获取栈顶元素、打印栈。 2、链栈:入栈、出栈、...

    严蔚敏:数据结构题集(C语言版)

    3.4.2 链队列--队列的链式表示和实现 3.4.3 循环队列--队列的顺序表示和实现 3.5 离散事件模拟 第4章 串 4.1 串类型的定义 4.2 串的表示和实现 4.2.1 定长顺序存储表示 4.2.2 堆分配存储表示 4.2.3 串的块链存储...

    数据结构(C语言版)[严蔚敏]

    4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...

    leetcode题库-dataStructureForC:考研数据结构基础代码C语言实现

    链队列的基本操作 串 串的顺序存储及基本操作 KMP 树 二叉树的顺序结构 二叉树的链式存储 线索二叉树(待修改) To be continued... 编译乱码: g++ -Wall -fexec-charset=GBK -finput-charset=UTF-8 $infile -o $...

    数据结构一学期作业(顺序栈,三元组,串,树,邻接表,邻接矩阵,二叉树,等等代码c语言实现)

    一学期数据结构的代码作业,...2019/10/27 14:23 1,123 链队列.cpp 2019/10/18 21:44 1,070 顺序栈.cpp 2019/09/24 14:57 1,663 顺序表.cpp 2019/10/15 15:47 1,087 顺序队列.cpp 2019/12/08 17:19 2,019 领接表.cpp

    C语言通用范例开发金典.part2.rar

    1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 ...

    《数据结构》(C语言版)严蔚敏

    4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...

    银行排队叫号系统实现

    银行排队叫号系统源码,若发现bug,欢迎指正,谢谢。操作系统是windows,开发工具vs2008

    严蔚敏 数据结构(C语言版) 代码 23490 书中算法

    2.2.2 顺序表中基本操作的实现 20 2.3 线性表的链式表示和实现 24 2.3.1 单链表的定义和表示 24 2.3.2 单链表基本操作的实现 26 2.3.3 循环链表 31 2.3.4 双向链表 32 2.4 线性表的应用 34 2.4.1 ...

    数据结构(C语言版)

    4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...

    数据结构与算法分析第二版 ---C语言描述(附加答案)

    优先队列(堆)6.1 模型6.2 一些简单的实现6.3 二叉堆6.3.1 结构性质6.3.2 堆序性质6.3.3 基本的堆操作6.3.4 其他的堆操作6.4 优先队列的应用6.4.1 选择问题6.4.2 事件模拟6.5 d-堆6.6 左式堆6.6.1 左式堆的性质...

Global site tag (gtag.js) - Google Analytics