循环队列(用标志位实现方法)
来源:互联网 发布:五毒风湿骨刺丹,淘宝网 编辑:程序博客网 时间:2024/06/05 23:43
/*循环队列(用标志位实现方法)*/#include<stdio.h>#define m 10typedef struct cycque{ int data[m]; int rear; /*队尾指针*/ int quelen; /*标志*/}CycQ;/*初始化*/void InitQue(CycQ *CQ){ CQ->rear=0; CQ->quelen=0;}/*判队列空*/int EmptyQue(CycQ *CQ){ if(CQ->quelen==0) return 1; else return 0;}/*入队列*/int EnQue(CycQ *CQ,int x){ if(CQ->quelen==m) { printf("队列满!\n");/*队列满,入队失败。*/ return 0; } else { CQ->rear=(CQ->rear+1)%m; CQ->data[CQ->rear]=x; CQ->quelen=CQ->quelen+1; return 1; }}/*出队列*/int OutQue(CycQ *CQ,int *x){ if(EmptyQue(&CQ)) { printf("队列空!\n"); return 0; } else { CQ->quelen=CQ->quelen-1; *x=CQ->data[(CQ->rear+m-CQ->quelen)%m]; return 1; }}/*取队列首元素*/int GetHead(CycQ *CQ){ int x; x=CQ->data[(CQ->rear+m-CQ->quelen)%m]; return x;}main(){ CycQ CQ; InitQue(&CQ); int i,x; printf("----创建队列----\n"); for(i=0;i<m;i++) { printf("请输入第%d个队列元素:\n",i+1); scanf("%d",&x); EnQue(&CQ,x); } printf("----输出队列----\n"); while(!EmptyQue(&CQ)) { x=GetHead(&CQ); OutQue(&CQ,&x); printf("%d\t",x); }}
阅读全文
0 0
- 循环队列(用标志位实现方法)
- 循环队列实现(通过设置标志位tag位判断空队满队)
- 通过设置标志位tag判断队空队满的循环队列
- 要求顺序循环队不损失一个空间,全部能够得到有效利用,试采用设置标志位tag的方法解决“假溢出”问题,实现顺序循环队列算法
- 用循环数组实现队列的方法
- 循环搜索(使用标志位)
- 循环队列的实现方法
- 标志位的判断方法
- android应用面试宝典(下);用自定义组件控制循环组件使用bug还添加标志显示答案标志位;通过包名读取配置文件AndroidManifest.xml
- 如何采用设置标志的方法来区分循环队列的满和空
- 用两种方法来实现循环队列
- java队列实现(顺序队列、链式队列、循环队列)
- java队列实现(顺序队列、链式队列、循环队列)
- C#实现循环顺序队列(队列)
- 队列的数组实现(循环队列)
- 用循环数组实现队列
- 用数组实现循环队列
- 用c实现循环队列
- js轮播广告
- 其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
- Gradle中的buildScript代码块
- 自己写了一个js切割方法
- GRID布局
- 循环队列(用标志位实现方法)
- 润乾V4 查询时20条一页导出时5w一页来进行分页
- 技术评审到底需要评审哪些东西
- SpringBoot Web应用返回JSP页面配置
- Spring全家桶(一)HelloWorld与入门基础
- ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
- 无队头指针的循环链队
- 第七届蓝桥杯省赛 四平方和
- 标题