c语言实现FIFO算法
时间: 2024-04-13 08:23:12 浏览: 198
c 语言中fifo算法
5星 · 资源好评率100%
C语言可以通过数组和指针来实现FIFO(First-In-First-Out)算法,也称为队列。下面是一种简单的实现方式:
1. 首先,定义一个固定大小的数组作为队列的存储空间,并定义两个指针front和rear分别指向队列的头部和尾部。
2. 初始化队列,将front和rear都设置为-1,表示队列为空。
3. 实现入队操作(enqueue):将元素插入到队列的尾部,并更新rear指针。如果rear指针已经指向了队列的最后一个位置,则无法插入新元素。
4. 实现出队操作(dequeue):将队列头部的元素移除,并更新front指针。如果front和rear指针相等,则表示队列已经为空。
5. 实现判断队列是否为空的操作(isEmpty):当front和rear指针都为-1时,表示队列为空。
下面是一个示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int queue[MAX_SIZE];
int front = -1;
int rear = -1;
void enqueue(int data) {
if (rear == MAX_SIZE - 1) {
printf("Queue is full.\n");
return;
}
if (front == -1) {
front = 0;
}
rear++;
queue[rear] = data;
}
void dequeue() {
if (front == -1 || front > rear) {
printf("Queue is empty.\n");
return;
}
front++;
}
int isEmpty() {
if (front == -1 || front > rear) {
return 1;
} else {
return 0;
}
}
int main() {
enqueue(1);
enqueue(2);
enqueue(3);
printf("Dequeue: %d\n", queue[front]);
dequeue();
printf("Dequeue: %d\n", queue[front]);
dequeue();
printf("Is empty: %d\n", isEmpty());
return 0;
}
```
阅读全文