实现链式队列入队的算法C语言
时间: 2024-12-19 13:15:03 浏览: 12
在C语言中,实现链式队列(一种先进先出(FIFO)的数据结构)的入队操作通常涉及创建一个新的节点,并将其添加到队列的末尾。这里是一个简单的单链表队列的入队操作算法示例:
```c
// 首先定义一个链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} QueueNode;
// 创建队列的头结点并初始化为空
QueueNode* queue = NULL;
// 入队操作函数
void enqueue(int value) {
// 创建新节点
QueueNode* newNode = (QueueNode*)malloc(sizeof(QueueNode));
if (newNode == NULL) { // 如果内存分配失败,则处理错误
printf("Memory allocation failed.\n");
return;
}
// 设置节点值
newNode->data = value;
// 如果队列为空,直接将新节点设为头结点
if (queue == NULL) {
newNode->next = NULL;
queue = newNode;
} else {
// 否则找到队尾,将新节点添加在其后
QueueNode* current = queue;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
newNode->next = NULL; // 新节点的尾部永远连接NULL
}
}
```
这个算法中,`enqueue`函数首先检查内存是否足够,然后创建新节点并将数据存储其中。如果队列为空,新节点就成为头结点;否则,它会在队列末尾追加。
阅读全文