队列入队和出队程序演示
#include <stdio.h>
#include <string.h>
#include <malloc.h>typedef struct Queue {int * pBase;int front;int rear;} QUEUE;void init(QUEUE *);
bool en_queue(QUEUE *pQ, int val); //入队
void traverse_queue(QUEUE * pQ);
bool full_queue(QUEUE * pQ);bool out_queue(QUEUE *pQ, int *pVal); //出队 *pVal用来保存出队的元素
bool empty_queue(QUEUE *pQ); //判空int main(void) {QUEUE Q;int val; //保存出队元素init(&Q);en_queue(&Q, 1);en_queue(&Q, 2);en_queue(&Q, 3);en_queue(&Q, 4);en_queue(&Q, 5);en_queue(&Q, 6);en_queue(&Q, 7);en_queue(&Q, 8);traverse_queue(&Q); //遍历输出if (out_queue(&Q, &val)) { //出队printf("出队成功 出队元素 %d\n",val);//成功}else {printf("出队失败 出队元素 %d\n", val);//失败}traverse_queue(&Q); //遍历输出while (true){}return 0;
}void init(QUEUE *pQ) {pQ->pBase = (int *)malloc(sizeof(int) * 6);pQ->front = 0;pQ->rear = 0;
}//入队
bool en_queue(QUEUE *pQ, int val) {if (full_queue(pQ)) {return false;}else {pQ->pBase[pQ->rear] = val;pQ->rear=(pQ->rear + 1) % 6;return true;}}//判断队列是不是满了
bool full_queue(QUEUE * pQ) {if ( (pQ->rear + 1)%6==pQ->front) {return true;}else {return false;}}//遍历输出
void traverse_queue(QUEUE *pQ) {int i=pQ->front;while (i != pQ->rear) {printf("%d ", pQ->pBase[i]);i = (i + 1) % 6;}printf("\n");return;
}//出队
bool out_queue(QUEUE *pQ, int *pVal) {if (empty_queue(pQ)) {return false; }else {*pVal = pQ->pBase[pQ->front]; //队列从头部出队,保存头部出队的元素pQ->front = (pQ->front + 1) % 6;}
}//队列判空
bool empty_queue(QUEUE *pQ) {if (pQ->front == pQ->rear) {return true;}else {return false;}}
队列入队和出队程序演示相关推荐
- AQS独占式同步队列入队与出队
入队 Node AQS同步队列和等待队列共用同一种节点结构Node,与同步队列相关的属性如下. prev 前驱结点 next 后继节点 thread 入队的线程 入队节点的状态 INITIAl 0 初 ...
- 队列的入队和出队操作
开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/05/27 让我们跟着课程队列的特点.好比我们生活中也会发生的排队, 先排队的人先得到服务,先走出队列,后面 ...
- 复习队列的入队和出队操作
开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/04/27 让我们跟着唐懿芳教授的课程来回忆一下队列的特点.好比我们生活中也会发生的排队,先排队的人先得到服 ...
- 循环队列,定义循环队列长度为10,编写初始化队列、入队、出队、求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能。
循环队列,定义循环队列长度为10,编写初始化队列.入队.出队.求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能. #include< ...
- C语言回顾--队列的入队和出队
------------------------------------------------------------------------------------------- 前言: 前几天做 ...
- 单链表实现队列的基本操作(入队,出队)
单链表实现队列的基本操作(包括初始化队列,入队,出队) 构造队列结构体 struct node {int data;node *next; };struct queue {node *head, *t ...
- 队列的入队、出队基本操作
队列 先进先出的线性表(FIFO) 队尾:队列中指定了用来插入数据的一端 队头:队列中指定了用来删除数据的一端 入队:数据的插入动作 出队:数据的删除动作 1.顺序队列 //顺序队列 #define ...
- 队列的基本操作(入队、出队、清空……)
队列的基本操作(入队.出队.清空--) SqQue.h #ifndef __SQQUE_H__ #define __SQQUE_h__ typedef int element; typedef str ...
- 队列的入队、出队操作
队列的常用操作就是入队和出队,这里入队用函数insert实现,出队用函数del实现,print函数实现队列的遍历做操: #include <iostream> #include <s ...
最新文章
- matlab e 精确到,matlab中用0.618法求minf(x)=e^(-x)+x^2在区间(0,1)上的极小值,精确到0.03....
- arduino 土壤温湿度传感器_智慧农业温室大棚环境监测传感器
- 六大举措建云管理模式助力企业转型升级
- Fiori Elements里的Reference Facet
- javabeans_(单元测试)JavaBeans的技巧
- 机器学习介绍jc01
- 谈谈现在软件测试行业的趋势和面试必备的东西
- JAVA实现随机无重复数字功能
- 数据推动变革 PMC创新存储方案应对挑战
- mybatis结果的组装(springboot)
- android ndk neon,android ndk NEON Support
- Python下载Wyoming怀俄明大学探空数据(数据网址更新)
- javascript将数字转换成大写
- java八皇后答案_java八皇后问题详解
- 当AD(Altium Designer)画PCB时Ctrl+H快捷键无法选中连线时的解决办法
- 冯东阳:知名博主博客发软文广告,你怎么看?
- 校招 - 行业测评题、图形推理题、逻辑思维面试题,解题技巧汇总
- java之打印日历表
- RK3568-SARADC
- 采药问题 c语言程序,采药问题为什么不能ac(内附代码)
热门文章
- python基础(13)之数组
- 爬虫必备反爬技能:使用动态ip
- %3c故乡%3e中语言描写的作用是什么,第三单元考试题
- 《数字孪生体技术白皮书》
- webUI自动化一元素定位
- Python之日志处理(logging模块)详解
- python多线程threading之阻塞线程(join)线程同步和守护线程(setDaemon(True))实例详解
- 详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
- [中山市选]杀人游戏 (Tarjan缩点)
- [Codevs] 1081 线段树练习 2 ----“分块!”