写一个1000个元素的队列,来一个新数据就顶替
时间: 2024-04-15 19:27:28 浏览: 20
以下是使用C语言实现的一个具有1000个元素的队列,当有新数据进入队列时,最早进入队列的数据会被替换掉:
```c
#include <stdio.h>
#define QUEUE_SIZE 1000
// 定义队列结构
typedef struct {
int queue[QUEUE_SIZE];
int front;
int rear;
} Queue;
// 初始化队列
void initQueue(Queue* q) {
q->front = 0;
q->rear = 0;
}
// 入队操作
void enqueue(Queue* q, int data) {
q->queue[q->rear] = data;
q->rear = (q->rear + 1) % QUEUE_SIZE;
}
int main() {
Queue queue;
initQueue(&queue);
// 模拟插入100个新数据
for (int i = 0; i < 100; i++) {
enqueue(&queue, i);
}
// 输出队列中的元素
printf("队列中的元素:");
int currentSize = (queue.rear - queue.front + QUEUE_SIZE) % QUEUE_SIZE;
for (int i = 0; i < currentSize; i++) {
printf("%d ", queue.queue[(queue.front + i) % QUEUE_SIZE]);
}
printf("\n");
return 0;
}
```
以上代码实现了一个具有1000个元素的队列,使用循环数组的方式来实现。在 `Queue` 结构体中,包含一个 `queue` 数组用于存储队列元素,以及 `front` 和 `rear` 分别表示队列的头部和尾部的索引。
在 `initQueue` 函数中,初始化队列的头部和尾部索引都为0。
`enqueue` 函数用于将新数据入队。它将新数据存储在队列的尾部,并更新尾部索引,使用取模运算确保索引不超出数组范围。
在 `main` 函数中,首先调用 `initQueue` 函数初始化队列。然后使用一个循环来模拟插入100个新数据,调用 `enqueue` 函数将数据入队。
最后,输出队列中的元素。通过计算当前队列的实际大小,使用循环遍历队列数组,输出每个元素。
请注意,这个示例只是展示了如何实现一个队列,并且在有新数据进入队列时替换最早进入的数据。如果你需要更多的队列操作(如出队、判空、判满等),还需要在代码中添加相应的函数和逻辑。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)