请用c语言写顺序队列的代码
时间: 2023-05-21 15:05:55 浏览: 60
下面是C语言实现的顺序队列代码,供您参考:
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int front; // 队头指针
int rear; // 队尾指针
} SqQueue;
// 初始化队列
void InitQueue(SqQueue *Q) {
Q->front = Q->rear = 0;
}
// 判断队列是否为空
int QueueEmpty(SqQueue *Q) {
return Q->front == Q->rear;
}
// 判断队列是否已满
int QueueFull(SqQueue *Q) {
return (Q->rear + 1) % MAXSIZE == Q->front;
}
// 入队
int EnQueue(SqQueue *Q, int x) {
if (QueueFull(Q)) {
printf("队列已满,无法入队!\n");
return 0;
}
Q->data[Q->rear] = x;
Q->rear = (Q->rear + 1) % MAXSIZE;
return 1;
}
// 出队
int DeQueue(SqQueue *Q, int *x) {
if (QueueEmpty(Q)) {
printf("队列已空,无法出队!\n");
return 0;
}
*x = Q->data[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return 1;
}
int main() {
SqQueue Q;
int i, x;
InitQueue(&Q);
for (i = 1; i <= 5; i++) {
EnQueue(&Q, i);
}
while (!QueueEmpty(&Q)) {
DeQueue(&Q, &x);
printf("%d ", x);
}
return 0;
}