先进先出算法C语言代码
时间: 2024-06-23 11:00:24 浏览: 92
先进先出(First-In-First-Out,FIFO)算法通常用于数据结构中的队列中,C语言中可以使用数组或链表来实现。这里我会给你展示一个基于数组实现的简单FIFO队列代码:
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建一个新的节点
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->next = NULL;
return newNode;
}
// 在队尾添加元素
void enqueue(Node** front, int value) {
if (*front == NULL) {
*front = createNode(value);
} else {
Node* newNode = createNode(value);
newNode->next = *front;
*front = newNode;
}
}
// 从队头移除并返回元素
int dequeue(Node** front) {
if (*front == NULL) {
printf("Queue is empty.\n");
return -1;
}
int value = (*front)->data;
Node* temp = *front;
*front = (*front)->next;
free(temp); // 释放内存
return value;
}
// 主函数示例
int main() {
Node* front = NULL;
enqueue(&front, 1);
enqueue(&front, 2);
enqueue(&front, 3);
printf("Dequeued: %d\n", dequeue(&front)); // 输出:Dequeued: 1
printf("Dequeued: %d\n", dequeue(&front)); // 输出:Dequeued: 2
printf("Dequeued: %d\n", dequeue(&front)); // 输出:Dequeued: 3
return 0;
}
```
阅读全文