c语言循环队列pop和push n个数组函数
时间: 2024-02-20 13:01:10 浏览: 69
下面是一个支持n个数组的C语言循环队列实现,包括push和pop操作:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 10
int queue[MAX_SIZE];
int front = 0, rear = 0;
int size[MAX_SIZE] = {0};
void push(int x, int n) {
if ((rear + 1) % MAX_SIZE == front) {
printf("Queue Overflow\n");
return;
}
queue[rear] = x;
rear = (rear + 1) % MAX_SIZE;
size[n]++;
}
int pop(int n) {
if (front == rear) {
printf("Queue Underflow\n");
return -1;
}
int x = queue[front];
front = (front + 1) % MAX_SIZE;
size[n]--;
return x;
}
int main() {
push(1, 0);
push(2, 1);
push(3, 2);
printf("%d\n", pop(0)); // 输出1
printf("%d\n", pop(1)); // 输出2
push(4, 1);
printf("%d\n", pop(2)); // 输出3
printf("%d\n", pop(1)); // 输出4
printf("%d\n", pop(0)); // 输出Queue Underflow
return 0;
}
```
在这个例子中,我们使用数组来实现循环队列,并且增加了一个数组size来记录每个队列的大小。当队列满时进行push操作,会输出“Queue Overflow”,当队列为空时进行pop操作,会输出“Queue Underflow”。在push和pop操作中,增加了一个参数n,用于指定是哪个队列进行操作。
阅读全文