#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;}}

队列入队和出队程序演示相关推荐

  1. AQS独占式同步队列入队与出队

    入队 Node AQS同步队列和等待队列共用同一种节点结构Node,与同步队列相关的属性如下. prev 前驱结点 next 后继节点 thread 入队的线程 入队节点的状态 INITIAl 0 初 ...

  2. 队列的入队和出队操作

    开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/05/27 让我们跟着课程队列的特点.好比我们生活中也会发生的排队, 先排队的人先得到服务,先走出队列,后面 ...

  3. 复习队列的入队和出队操作

    开发工具与关键技术:Visual Studio 2015 作者:杨灵武 撰写时间:2020/04/27 让我们跟着唐懿芳教授的课程来回忆一下队列的特点.好比我们生活中也会发生的排队,先排队的人先得到服 ...

  4. 循环队列,定义循环队列长度为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< ...

  5. C语言回顾--队列的入队和出队

    ------------------------------------------------------------------------------------------- 前言: 前几天做 ...

  6. 单链表实现队列的基本操作(入队,出队)

    单链表实现队列的基本操作(包括初始化队列,入队,出队) 构造队列结构体 struct node {int data;node *next; };struct queue {node *head, *t ...

  7. 队列的入队、出队基本操作

    队列 先进先出的线性表(FIFO) 队尾:队列中指定了用来插入数据的一端 队头:队列中指定了用来删除数据的一端 入队:数据的插入动作 出队:数据的删除动作 1.顺序队列 //顺序队列 #define ...

  8. 队列的基本操作(入队、出队、清空……)

    队列的基本操作(入队.出队.清空--) SqQue.h #ifndef __SQQUE_H__ #define __SQQUE_h__ typedef int element; typedef str ...

  9. 队列的入队、出队操作

    队列的常用操作就是入队和出队,这里入队用函数insert实现,出队用函数del实现,print函数实现队列的遍历做操: #include <iostream> #include <s ...

最新文章

  1. matlab e 精确到,matlab中用0.618法求minf(x)=e^(-x)+x^2在区间(0,1)上的极小值,精确到0.03....
  2. arduino 土壤温湿度传感器_智慧农业温室大棚环境监测传感器
  3. 六大举措建云管理模式助力企业转型升级
  4. Fiori Elements里的Reference Facet
  5. javabeans_(单元测试)JavaBeans的技巧
  6. 机器学习介绍jc01
  7. 谈谈现在软件测试行业的趋势和面试必备的东西
  8. JAVA实现随机无重复数字功能
  9. 数据推动变革 PMC创新存储方案应对挑战
  10. mybatis结果的组装(springboot)
  11. android ndk neon,android ndk NEON Support
  12. Python下载Wyoming怀俄明大学探空数据(数据网址更新)
  13. javascript将数字转换成大写
  14. java八皇后答案_java八皇后问题详解
  15. 当AD(Altium Designer)画PCB时Ctrl+H快捷键无法选中连线时的解决办法
  16. 冯东阳:知名博主博客发软文广告,你怎么看?
  17. 校招 - 行业测评题、图形推理题、逻辑思维面试题,解题技巧汇总
  18. java之打印日历表
  19. RK3568-SARADC
  20. 采药问题 c语言程序,采药问题为什么不能ac(内附代码)

热门文章

  1. python基础(13)之数组
  2. 爬虫必备反爬技能:使用动态ip
  3. %3c故乡%3e中语言描写的作用是什么,第三单元考试题
  4. 《数字孪生体技术白皮书》
  5. webUI自动化一元素定位
  6. Python之日志处理(logging模块)详解
  7. python多线程threading之阻塞线程(join)线程同步和守护线程(setDaemon(True))实例详解
  8. 详述白盒测试的逻辑覆盖的路径覆盖及其优缺点
  9. [中山市选]杀人游戏 (Tarjan缩点)
  10. [Codevs] 1081 线段树练习 2 ----“分块!”