在线词典

c 怎么创建链表

更新日期:2026-11-12 19:32:42

标题c 怎么创建链表
内容

在 C 语言中,链表是一种常见的数据结构,用于动态存储数据。与数组不同,链表的节点在内存中是分散存储的,通过指针连接起来。本文将总结如何在 C 语言中创建链表,并以表格形式展示关键步骤和代码示例。

一、链表的基本概念

术语 含义
节点(Node) 链表中的一个元素,包含数据和指向下一个节点的指针
头指针(Head) 指向链表第一个节点的指针
尾指针(Tail) 指向链表最后一个节点的指针
空链表 没有节点的链表,头指针为 NULL

二、创建链表的步骤总结

步骤 描述
1. 定义节点结构体 使用 `struct` 定义链表节点的结构,包含数据域和指针域
2. 声明头指针 创建一个指向链表节点的指针变量,初始化为 NULL
3. 动态分配内存 使用 `malloc()` 为新节点分配内存空间
4. 初始化节点数据 给新节点的数据域赋值
5. 设置指针链接 将新节点的指针域指向当前链表的尾部或空
6. 更新尾指针(可选) 如果需要添加到链表末尾,更新尾指针指向新节点

三、C 语言创建链表的示例代码

```c

include

include

// 定义链表节点结构体

typedef struct Node {

int data;

struct Node next;

} Node;

int main() {

// 1. 声明头指针

Node head = NULL;

Node tail = NULL;

// 2. 创建第一个节点

Node newNode = (Node)malloc(sizeof(Node));

if (newNode == NULL) {

printf("内存分配失败\n");

return 1;

}

newNode->data = 10;

newNode->next = NULL;

// 3. 初始化头指针和尾指针

head = newNode;

tail = newNode;

// 4. 创建第二个节点

newNode = (Node)malloc(sizeof(Node));

if (newNode == NULL) {

printf("内存分配失败\n");

return 1;

}

newNode->data = 20;

newNode->next = NULL;

// 5. 将新节点添加到链表末尾

tail->next = newNode;

tail = newNode;

// 6. 打印链表内容

Node current = head;

while (current != NULL) {

printf("%d -> ", current->data);

current = current->next;

}

printf("NULL\n");

return 0;

}

```

四、总结

项目 内容
链表类型 单向链表(本例)
内存管理 使用 `malloc()` 动态分配
节点操作 添加、遍历、释放(未展示)
优点 动态增长,灵活存储
缺点 访问效率低,需遍历

通过以上步骤,你可以轻松地在 C 语言中创建一个简单的单向链表。链表适合需要频繁插入和删除操作的场景,但在访问特定位置时不如数组高效。

随便看