用C语言编写一个链表结构
时间: 2024-09-18 19:19:04 浏览: 54
C语言 数据结构之链表实现代码
5星 · 资源好评率100%
在C语言中,我们可以创建一个简单的链表结构,用于存储一系列的数据元素。链表是由一个个节点构成的,每个节点包含数据和指向下一个节点的指针。以下是创建一个单链表节点的例子:
```c
// 定义链表节点结构体
struct Node {
int data; // 节点的数据部分
struct Node* next; // 指向下一个节点的指针
};
// 创建链表的函数原型
struct Node* createList(); // 创建空链表
void insertNode(struct Node** head, int value); // 插入新节点
void printList(struct Node* head); // 打印链表所有元素
// 初始化链表
struct Node* head = NULL;
// 创建链表函数
struct Node* createList() {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); // 动态分配内存
newNode->data = 0; // 新节点默认数据为0
newNode->next = NULL; // 初始状态下一个节点为空
head = newNode; // 将新节点设为头节点
return newNode;
}
// 插入节点函数
void insertNode(struct Node** head, int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = *head; // 新节点连接到当前头节点
*head = newNode; // 更新头节点为新插入的节点
}
// 打印链表函数
void printList(struct Node* head) {
struct Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
```
在这个例子中,`createList()` 函数用于初始化一个空链表,`insertNode()` 函数将新值插入链表头部,`printList()` 函数则打印出链表的所有元素。
阅读全文