用c语言完成循环队列的基本操作代码
时间: 2023-09-03 11:10:45 浏览: 86
以下是使用 C 语言完成循环队列的基本操作代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
typedef struct
{
int data[MAXSIZE];
int front;
int rear;
}CircularQueue;
int InitQueue(CircularQueue *q)
{
q->front = q->rear = 0;
return 1;
}
int EnQueue(CircularQueue *q, int x)
{
if((q->rear+1)%MAXSIZE == q->front) //队列已满
{
printf("Queue is full!\n");
return -1;
}
q->data[q->rear] = x;
q->rear = (q->rear+1)%MAXSIZE;
return 1;
}
int DeQueue(CircularQueue *q, int *x)
{
if(q->front == q->rear) //队列为空
{
printf("Queue is empty!\n");
return -1;
}
*x = q->data[q->front];
q->front = (q->front+1)%MAXSIZE;
return 1;
}
int main()
{
CircularQueue q;
int x, y, z;
InitQueue(&q);
EnQueue(&q, 1);
EnQueue(&q, 2);
EnQueue(&q, 3);
DeQueue(&q, &x);
DeQueue(&q, &y);
DeQueue(&q, &z);
printf("%d %d %d\n", x, y, z);
return 0;
}
```
注意:这里的代码仅供参考,具体实现可能因具体需求而异。如果您需要更灵活的操作,请根据自己的需要进行改写。
阅读全文