循环队列
来源:互联网 发布:windows安全性 编辑:程序博客网 时间:2024/06/08 07:01
#include<stdio.h>#define maxsize 10typedef int Datatype;typedef struct cycqueue{ Datatype data[maxsize]; /*循环队列大小*/ int front; /*队列头指针*/ int rear; /*队列尾指针*/}CycQue;void InitQueue(CycQue *CQ) /*队列实始化*/{ CQ->front=0; CQ->rear=0;}int EmptyQueue(CycQue *CQ) /*判队列空*/{ if(CQ->rear==CQ->front) return 1; /*队列为空,返回1.*/ else return 0; /*队列不为空,返回0.*/}int EnQueue(CycQue *CQ,Datatype x) /*入队列*/{ if((CQ->rear+1)%maxsize==CQ->front) { printf("队列满!\n");/*队列满,入队失败。*/ return 0; } else { CQ->rear=(CQ->rear+1)%maxsize; CQ->data[CQ->rear]=x;/*入队成功*/ return 1; }}int OutQueue(CycQue *CQ) /*出队列*/{ if(EmptyQueue(&CQ)) /*判断队列是否为空*/ { printf("队列空!\n"); return 0; } else { CQ->front=(CQ->front+1)%maxsize;/*不为空,出队列。*/ return 1; }}Datatype Gethead(CycQue *CQ) /*取队列首元素*/{ if(EmptyQueue(&CQ)) /*判断队列是否为空*/ { printf("NullData!\n"); return 0; } else { return CQ->data[(CQ->front+1)%maxsize]; }}main(){ CycQue CQ; InitQueue(&CQ); int i,temp; printf("------创建队列------\n"); for(i=1;i<maxsize;i++) { printf("请输入第%d个队列元素:\n",i); scanf("%d",&temp); EnQueue(&CQ,temp); } printf("------输出队列------\n"); while(!EmptyQueue(&CQ)) { temp=Gethead(&CQ); OutQueue(&CQ); printf("%d\t",temp); }}
阅读全文
0 0
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- bsp的分析
- valid parentheses
- Myecplise 10创建struts2流程
- Python Django进阶教程(五)(session,Django用户认证)
- Renovate
- 循环队列
- Struts2搭建登录页面
- Echarts 如何调整 legend 和图表的间距
- jenkins体验-maven安装
- 牛顿迭代法求平方根、立方根
- Spring全家桶(二)Bean之间的关系、自动装配、作用域和使用外部文件
- 深度学习之物体检测——YOLO(一)_介绍
- 需求缺陷表缺点及优化建议
- C语言程序设计教程(第三版)课后习题11.8