循环队列的c语言实现
2017-03-15 15:25
260 查看
写于 2015-06-22
可能有错误,感谢指出
#include<stdio.h>
#include<stdlib.h>
#define MAXQSIZE 100
typedef int Status;
typedef int QElemtype;
typedef struct {
QElemtype *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue &Q){
Q.base=(QElemtype *)malloc(MAXQSIZE *sizeof(QElemtype));
if(!Q.base) return 0;
Q.front=Q.rear=0;
return 1;
}
Status QueueLength(SqQueue &Q){
return ((Q.rear-Q.front+MAXQSIZE)%MAXQSIZE);
}
Status EnQueue(SqQueue &Q,QElemtype e){
if((Q.rear+1)%MAXQSIZE==Q.front) return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXQSIZE;
return 1;
}
Status DeQueue(SqQueue &Q,QElemtype &e){
if(Q.front==Q.rear) return 0;
e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXQSIZE;
return 1;
}
Status PrintfQueue(SqQueue &Q){
if(Q.front==Q.rear) return 0;
for(int i=(Q.front%MAXQSIZE);i<(Q.rear%MAXQSIZE);i++) printf("%d\n",Q.base[i]);
return 1;
}
int main(){
SqQueue q;
QElemtype e;
InitQueue(q);
EnQueue(q,1);
EnQueue(q,2);
EnQueue(q,3);
DeQueue(q,e);
printf("%d\n",QueueLength(q));
PrintfQueue(q);
return 0;
}
可能有错误,感谢指出
#include<stdio.h>
#include<stdlib.h>
#define MAXQSIZE 100
typedef int Status;
typedef int QElemtype;
typedef struct {
QElemtype *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue &Q){
Q.base=(QElemtype *)malloc(MAXQSIZE *sizeof(QElemtype));
if(!Q.base) return 0;
Q.front=Q.rear=0;
return 1;
}
Status QueueLength(SqQueue &Q){
return ((Q.rear-Q.front+MAXQSIZE)%MAXQSIZE);
}
Status EnQueue(SqQueue &Q,QElemtype e){
if((Q.rear+1)%MAXQSIZE==Q.front) return 0;
Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXQSIZE;
return 1;
}
Status DeQueue(SqQueue &Q,QElemtype &e){
if(Q.front==Q.rear) return 0;
e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXQSIZE;
return 1;
}
Status PrintfQueue(SqQueue &Q){
if(Q.front==Q.rear) return 0;
for(int i=(Q.front%MAXQSIZE);i<(Q.rear%MAXQSIZE);i++) printf("%d\n",Q.base[i]);
return 1;
}
int main(){
SqQueue q;
QElemtype e;
InitQueue(q);
EnQueue(q,1);
EnQueue(q,2);
EnQueue(q,3);
DeQueue(q,e);
printf("%d\n",QueueLength(q));
PrintfQueue(q);
return 0;
}
相关文章推荐
- 顺序队列(循环队列)基本操作实现 C语言
- 循环队列的实现(C语言)
- c语言实现循环队列
- 数据结构:循环队列(C语言实现)
- 静态数组实现循环队列 c语言
- c语言用简单数组实现循环队列
- 数据结构:循环队列(C语言实现)
- 循环队列-顺序存储-c语言实现
- 数据结构之---C语言实现循环队列
- 链式循环队列实现(C语言)
- c语言循环线性队列的实现
- 数据结构:循环队列(C语言实现)
- C语言循环队列的表示与实现实例详解
- 数据结构基础(5)--C语言实现循环队列--静态
- 循环队列C语言实现
- 数据结构:循环队列(C语言实现)
- 数据结构:循环队列(C语言实现)
- 数据结构循环队列斐波拉契数列的实现(c语言)
- 循环队列-链式存储结构-c语言实现
- C语言实现循环队列基本操作(初始化、判断队空、入队、出队)