完整代码:
#include<stdio.h>
#include<stdlib.h>
#define ERROR 0
#define OK 1
#define M 10
#define N 10
//循环多队列结构体定义
typedef int ElemType;
typedef struct {
int fornt,rear;
}frnode;
typedef struct{
ElemType queue[N][M];
frnode f[N];
}MultyQueue;
//创建算法
void InitQueue(MultyQueue *Q){
int i;
for(i=0;i<N;i++){
Q->f[i-1].fornt=Q->f[i-1].rear=0;
}
}
//入队
int EnQueue(MultyQueue *Q,int i,ElemType e){
if(i<1||i>N){
return ERROR;
}
if(Q->f[i-1].fornt==(Q->f[i-1].rear+1)%M) {
return ERROR;
}
Q->queue[i-1][Q->f[i-1].rear]=e;
Q->f[i-1].rear=(Q->f[i-1].rear+1)%M;
return OK;
}
//出队
int DeQueue(MultyQueue *Q,int i,ElemType *e) {
if(i<1||i>N){
return ERROR;
}
if(Q->f[i-1].fornt==Q->f[i-1].rear) {
return ERROR;
}
*e=Q->queue[i-1][Q->f[i-1].fornt];
Q->f[i-1].fornt=(Q->f[i-1].fornt+1)%M;
return OK;
}
//打印
void PrintfQueue(MultyQueue *Q,int i) {
if(Q->f[i-1].fornt==Q->f[i-1].rear) {
printf("\nThis is null!");
}else{
for(int j=Q->f[i-1].fornt; j<Q->f[i-1].rear; j++) {
printf("%d",Q->queue[i-1][j]);
}
}
}
int main(void){
MultyQueue Q;
ElemType e1,e2,i;
scanf("%d%d",&e1,&i);
InitQueue(&Q);
EnQueue(&Q,i,e1);
DeQueue(&Q,i,&e2);
printf("%d",e2);
PrintfQueue(&Q,i);
return 0;
}