C语言完成不带头结点的链队列相关操作。typedef int DataType;
时间: 2024-11-30 09:20:12 浏览: 47
在C语言中,我们可以创建一个不带头节点的简单链表作为队列的数据结构。首先,我们需要定义一个数据节点`QueueNode`,然后提供用于插入元素(入队)、删除元素(出队)以及检查队列是否为空的操作。以下是基本的实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点
typedef struct QueueNode {
DataType data;
struct QueueNode* next;
} QueueNode;
// 初始化一个空队列
QueueNode* createQueue() {
return NULL;
}
// 插入元素到队尾(入队)
void enqueue(QueueNode** front, DataType value) {
if (*front == NULL) {
*front = (QueueNode*)malloc(sizeof(QueueNode));
(*front)->data = value;
(*front)->next = NULL;
} else {
QueueNode* new_node = (QueueNode*)malloc(sizeof(QueueNode));
new_node->data = value;
new_node->next = (*front);
*front = new_node;
}
}
// 删除并返回队首元素(出队)
DataType dequeue(QueueNode** front) {
if (*front == NULL) {
printf("Queue is empty.\n");
return -1; // 或者抛出错误
}
DataType value = (*front)->data;
QueueNode* temp = *front;
*front = (*front)->next;
free(temp);
return value;
}
// 检查队列是否为空
int isEmpty(QueueNode* front) {
return front == NULL;
}
// 示例用法
int main() {
QueueNode* queue = createQueue();
enqueue(&queue, 10);
enqueue(&queue, 20);
printf("Dequeued: %d\n", dequeue(&queue)); // 输出: Dequeued: 10
// 其他操作...
return 0;
}
```
阅读全文
相关推荐



















