采用链式存储实现队列的初始化、入队、出队操作。
来源:互联网 发布:淘宝宝贝搭配套餐 编辑:程序博客网 时间:2024/04/19 08:14
#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2
typedef struct QNode{//创建队成员
int 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;
//return 1;
}
int EnQueue(LinkQueue &Q)//入队操作
{
int e;
QueuePtr p;
printf("请输入入队元素:");
scanf("%d",&e);
p=(QueuePtr)malloc(sizeof(QNode));
if (p==NULL) exit (OVERFLOW);
p->data = e; p->next = NULL;
Q.rear->next=p;//把p插入队尾
Q.rear=p;//把p变为队尾
return 1;
}
int DeQueue(LinkQueue &Q)//出队操作
{
QueuePtr p;
int e;
if ( Q.front == Q.rear){
printf("队列为空\n");
return -1;
}
p=Q.front->next;//头指针为空
e=p->data;
printf("%d 出对\n",e);
Q.front->next =p->next;//指针后移
if (Q.rear == p) Q.rear = Q.front;//如果p为队尾
free(p);//释放p
return 1;
}
void tip()
{
printf("*************\n");
printf("*输入1 进队 *\n");
printf("*输入2 出对 *\n");
printf("*请选择: *\n");
printf("*************\n");
}
int main()
{
int k;
LinkQueue Q;
InitQueue(Q);//初始化队列
tip();
while(scanf("%d",&k),k)
{
switch(k)
{
case 1:
EnQueue(Q);
tip();
printf("操作完毕\n");
break;
case 2:
DeQueue(Q);
tip();
printf("操作完毕\n");
break;
}
}
return 0;
}
- 采用链式存储实现队列的初始化、入队、出队操作。
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 链式队列操作,初始化,入队,出队
- 链式队列的入队出队操作
- 链式存储结构实现队列的入队和出队操作以及 栈的出栈和入栈操作
- 链队列的初始化、入队、出队等操作实现
- 队列的入队、出队操作实现
- 子函数实现链式队列 的 操作,创建、入队、出队、退出。
- 循环队列的初始化、入队、出队等基本操作
- C语言实现顺序队列的初始化、入队、出队等操作(三)
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现
- 利用顺序存储结构实现双端队列的入队和出队操作
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 编程实现队列入队出队操作
- 编程实现队列的入队/出队操作
- 编程实现队列的入队/出队操作
- 顺序队列基本操作的实现----入队、出队、打印
- 队列的出队/入队的操作
- C语言中main函数的研究,以及对代码断点调试的研究(王爽老师 汇编语言)
- win 2003 server的一些优化设置
- 指定目录下的java文件存储到一个Txt文本文件中
- 根据前序遍历,中序遍历构建二叉树
- MyFirstMenu.cpp
- 采用链式存储实现队列的初始化、入队、出队操作。
- 《C程序设计语言》——序言
- CSDN第二次培训的第二篇感想
- C++之相关学习笔记
- Android闹钟拓展版【安卓闹钟可换壁纸版】
- 赵雅智_java java类
- GUI 控件样式
- C/C++中的指针
- 常见等待事件enqueue