《循环队列实现数据的入队与出对程序算法》由会员分享,可在线阅读,更多相关《循环队列实现数据的入队与出对程序算法(3页珍藏版)》请在金锄头文库上搜索。
1、#include #include #define maxlen 11 typedef struct int datamaxlen; int front; int rear; seqqueue; seqqueue *seq() seqqueue *Q; Q=(seqqueue *)malloc(sizeof(seqqueue); Q-front=0; Q-rear=0; return Q; int full(seqqueue *Q) if(Q-front=(Q-rear+1)%maxlen) return 1; else return 0; int empty(seqqueue *Q) if
2、(Q-front=Q-rear) return 1; else return 0; void add(seqqueue *Q,int x) if(!full(Q) Q-rear=(Q-rear+1)%maxlen; Q-dataQ-rear=x; else printf(“queue full!“); void del(seqqueue *Q) if(!empty(Q) Q-front=(Q-front+1)%maxlen; else printf(“queue empty“); int length(seqqueue *Q) int a; a=(Q-rear-Q-front+maxlen)%
3、maxlen; return a; void out(seqqueue *Q) int i,j,y;j=length(Q); for(i=1;ifront+i)%maxlen; printf(“%3d“,Q-datay); void main() seqqueue Q; int i,x,n; Q=*seq(); printf(“该循环最多存放 10 个数。n“); printf(“请输入你要输入元素的个数:“); scanf(“%d“, printf(“请输入%d 个元素:“,n); for(i=0;in;i+) scanf(“%d“, add( printf(“循环中存放的元素为:n“); out( printf(“n“);printf(“请输入入队元素:“);scanf(“%d“, add( out( printf(“n“); printf(“请选择出队元素个数:“); scanf(“%d“, for(i=0;in;i+) del(if(empty( out( printf(“n“); printf(“请选择入队元素个数:“); scanf(“%d“, printf(“请输入入队元素:“); for(i=0;in;i+) scanf(“%d“, add( if(full( out( printf(“n“);