链表是一种重要的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
链表节点定义
#include <stdio.h>
#include <stdlib.h>
// 链表节点结构体
typedef struct Node {
int data; // 节点存储的数据
struct Node* next; // 指向下一个节点的指针
} Node;
基本操作函数
创建新节点
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed\n");
exit(0);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
向链表末尾插入节点
void appendNode(Node** head, int data) {
Node* newNode = createNode(data);
if (*head == NULL) {
*head = newNode;
return;
}
Node* last = *head;
while (last->next != NULL) {
last = last->next;
}
last->next = newNode;
}
打印链表
void printList(Node* node) {
while (node != NULL) {
printf("%d -> ", node->data);
node = node->next;
}
printf("NULL\n");
}
使用示例
最后,我们通过一个简单的示例来使用上述功能。
int main() {
Node* head = NULL; // 初始化空链表
// 插入几个节点
appendNode(&head, 1);
appendNode(&head, 2);
appendNode(&head, 3);
// 打印链表
printf("Linked List: ");
printList(head);
return 0;
}
这段代码首先定义了一个链表节点结构体,然后实现了创建新节点、向链表末尾添加节点以及打印整个链表的功能。在main函数中,我们创建了一个链表并插入了几个节点,最后打印出链表的内容。