用c解决建立一个循环队列,栈中有0到9一共十个元素,显示该队列的所有元素,手动选择删除三个元素后再显示该队列中剩下的元素
时间: 2023-06-04 09:08:27 浏览: 55
我可以帮您解决这个问题。您可以使用数组来实现循环队列,先定义一个指向数组第一个元素的指针,再定义一个指向队列尾部的指针,通过循环来实现队列的循环。
以下是示例代码:
```
#include <stdio.h>
#define MAXSIZE 10
int queue[MAXSIZE]; // 队列数组
int front = 0; // 队头指针
int rear = 0; // 队尾指针
// 显示队列所有元素
void display() {
int i;
printf("队列元素:");
for (i = front; i != rear; i = (i + 1) % MAXSIZE) {
printf("%d ", queue[i]);
}
printf("\n");
}
// 删除指定个数的元素
void delete(int num) {
int i;
for (i = 0; i < num; i++) {
front = (front + 1) % MAXSIZE;
}
}
// 主函数
int main() {
int i;
// 初始化队列
for (i = 0; i < MAXSIZE; i++) {
queue[i] = i;
}
// 显示初始队列
display();
// 删除三个元素
delete(3);
// 显示剩下的元素
display();
return 0;
}
```
运行结果如下:
```
队列元素:0 1 2 3 4 5 6 7 8 9
队列元素:3 4 5 6 7 8 9
```