//链队列的初始化及入队出队操作,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
分享到:
相关推荐
链队列的基本操作 (1)建立链表队列 (2)入队一个元素 (3)出队一个元素 c语言实现的哦!!! 配c语言版的数据结构!!
本程序共设计了单链表上多项式相加需要的的6个基本操作运算,分别是链式队列的入队,出队,遍历,长度,取队头,以及销毁队列操作。附带实验报告。
链队列
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文件和exe文件,基本操作为:1:初始化链队列2:销毁链队列3:清空链队列4:链队列是否为空5:返回链队列头元素6:元素入队7:元素出队8:当前链队列长度
头歌数据结构循环队列及链队列的基本操作 第1关循环队列的基本操作 第2关链队列的基本操作 稳过 栈是一种后进先出的数据结构,而在实际问题中还经常使用一种“先进先出”的数据结构。队列就是从日常生活中的排队...
头歌数据结构的题目: 顺序表的基本操作和应用 链表的基本操作和应用, 循环队列的应用 同时还有一些附加题,n皇后和钓鱼
主要的数据结构(顺序表、链表、栈、队列、循环表和循环队列)的一些基本操作,适合初步学习数据结构人员参考,均是在win32下运行,调试通过
这个资源主要是使用C语言实现的栈和队列两种数据结构基本操作,包含栈的入栈、出栈,队列的入队列、出队列的相关操作,具体包含如下几个: 1、顺序栈:入栈、出栈、获取栈顶元素、打印栈。 2、链栈:入栈、出栈、...
3.4.2 链队列--队列的链式表示和实现 3.4.3 循环队列--队列的顺序表示和实现 3.5 离散事件模拟 第4章 串 4.1 串类型的定义 4.2 串的表示和实现 4.2.1 定长顺序存储表示 4.2.2 堆分配存储表示 4.2.3 串的块链存储...
4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...
链队列的基本操作 串 串的顺序存储及基本操作 KMP 树 二叉树的顺序结构 二叉树的链式存储 线索二叉树(待修改) To be continued... 编译乱码: g++ -Wall -fexec-charset=GBK -finput-charset=UTF-8 $infile -o $...
一学期数据结构的代码作业,...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
1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 ...
4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...
银行排队叫号系统源码,若发现bug,欢迎指正,谢谢。操作系统是windows,开发工具vs2008
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 ...
4.4 串操作应用举例 第5章 数组和广义表 5.1 数组的定义 5.2 数组的顺序表现和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的储存结构 5.6 m元多项式的表示 5.7 广义表的递归算法第6章 树和二叉树 6.1 树的...
优先队列(堆)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 左式堆的性质...