循环队列的基本操作
2015-07-25 10:48
351 查看
代码
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 5 //定义队列结构体 typedef struct SqQueen{ int data[MAXSIZE]; int front; int rear; }SqQueen; //打印 void printSqQueen(SqQueen Q){ int i=Q.front; // while((i+Q.front)!=Q.rear){ // printf("%3d",Q.data[i]); // i=(i+1)%MAXSIZE; // } while(Q.front != Q.rear){ printf("%3d",Q.data[Q.front]); Q.front = (Q.front+1)%MAXSIZE ; } printf("\n"); } //获取长度 int sqLength(SqQueen Q){ return (Q.rear-Q.front+MAXSIZE)%MAXSIZE; } //初始化 void initSqQueen(SqQueen *Q){ Q->front = 0; Q->rear = 0; } //入队 void inSqQueen(SqQueen *Q,int e){ if((Q->rear+1)%MAXSIZE == Q->front){ printf("队列已满!\n"); exit(-1); } Q->data[Q->rear] = e; Q->rear = (Q->rear+1)%MAXSIZE; printf("入队:%d\n",e); } //出队 void outSqQueen(SqQueen *Q){ if(Q->front == Q->rear){ printf("队列已空!\n"); exit(-1); } printf("出队:%3d\n",Q->data[Q->front]); Q->front = (Q->front+1)%MAXSIZE; } int main(){ SqQueen Q; initSqQueen(&Q); inSqQueen(&Q,3); inSqQueen(&Q,5); inSqQueen(&Q,8); printSqQueen(Q); outSqQueen(&Q); printSqQueen(Q); outSqQueen(&Q); outSqQueen(&Q); outSqQueen(&Q); printSqQueen(Q); printf("Hello world !\n"); return 0; }
执行结果
相关文章推荐
- 即时通讯工具中联系人相关专利
- IOBYEVNT.C-----overlapped I/O with signaled everts
- java的IO框架总结
- exchange解决全备份后日志没有删除的经验之一
- 源码深度解析SpringMvc请求运行机制(转)
- 高斯函数
- PS色调— —通道混合
- 树的直径
- 如何查看SQL server 2005版本
- Cts分析框架(4)-添加任务
- java新手笔记15 多态
- RelativeLayout相对布局 各个属性详解
- 算法设计与分析
- 关于application/x-www-form-urlencoded编码
- ZOJ1709/POJ1562 油田问题/搜索/DFS
- VMwareTools安装及出现kernel header path的解决方法
- SORBS的DUHL申诉移除过程图解
- poj1026--Cipher(置换群)
- vc6.0在win8或8.1下“打开文件”功能不用用的解决办法
- selenium自动化测试(一)