数组模拟环形队列代码实现
时间: 2023-04-07 11:03:04 浏览: 152
以下是一个简单的数组模拟环形队列的代码实现:
```
#define MAXSIZE 100 // 队列的最大长度
typedef struct {
int data[MAXSIZE]; // 存储队列元素的数组
int front; // 队头指针
int rear; // 队尾指针
} CircularQueue;
// 初始化队列
void InitQueue(CircularQueue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int IsEmpty(CircularQueue *q) {
return q->front == q->rear;
}
// 判断队列是否已满
int IsFull(CircularQueue *q) {
return (q->rear + 1) % MAXSIZE == q->front;
}
// 入队操作
int EnQueue(CircularQueue *q, int x) {
if (IsFull(q)) {
return 0; // 队列已满,入队失败
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAXSIZE; // 队尾指针后移
return 1; // 入队成功
}
// 出队操作
int DeQueue(CircularQueue *q, int *x) {
if (IsEmpty(q)) {
return 0; // 队列为空,出队失败
}
*x = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE; // 队头指针后移
return 1; // 出队成功
}
```
希望能对你有所帮助!
阅读全文