循环队列的实现
2014-04-12 16:38
190 查看
#include <stdio.h> #include <stdlib.h> #define error -1 #define ok 1 #define overflow -2 #define MAXSIZE 100 typedef struct { int *base; int front; int rear; }SqQueue; int InitQueue (SqQueue &Q) { Q.base=(int *)malloc(MAXSIZE*sizeof(int)); if(!Q.base) return overflow; Q.front=Q.rear=0; return ok; } int EnQueue (SqQueue &Q,int e) { if((Q.rear+1)%MAXSIZE==Q.front) return error; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXSIZE; return ok; } int DeQueue(SqQueue &Q,int &e) { if(Q.front==Q.rear) return error; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXSIZE; return ok; } void Print(SqQueue *q) { int i; if(q->front==q->rear) return; else if(q->rear<q->front) { for(i=q->front;i<MAXSIZE;++i) printf("%d ",q->base[i]); for(i=0;i<q->rear;++i) printf("%d ",q->base[i]); printf("\n"); } else{ for(i=q->front;i<q->rear;++i) printf("%d ",q->base[i]); printf("\n"); } } void main() { SqQueue q; int i,k; InitQueue(q); for(i=0;i<100;++i) { scanf("%d",&k); EnQueue(q,k); } for(i=0;i<100;++i) { DeQueue(q,k); Print(&q); } }
感谢各路前辈的相助!!!总算搜来。。。自觉数据结构没有上学期c语言学得好了。。。要努力了!!
相关文章推荐
- chinapay
- SRM 615 D1L3: AlternativePiles, dp
- Qt 定时器Timer使用
- MH370海底追踪:哪些技术手段可用?
- OpenStack监控:整合Nagios调研总结
- Android源码分析之Handler
- Windows下使用boost
- Dialog的使用(四)
- PhoneGap+jQuery Mobile+Rest 访问远程数据
- UNIX环境高级编程Ubuntu下的一个小BUG
- archive 生成的ipa 比 bulid然后拖到itunes里生成的ipa要小7、8M
- HTML框架(Frameset)及框架间的引用
- 无限级分类 for PHP+Mysql
- python实现的遗传算法实例(一)
- 最小平均完成时间调度问题_最小化完成时间
- MongoDB---删除用户
- poj 1125 Stockbroker Grapevine——Floyd
- STL 顺序容器之表
- 编程之美 大神與三位小夥伴
- “真的”