单链表的定义
单链表是线性表的链式存储结构形式。它通过一组任意的存储单元来存储数据元素,并通过指针建立元素间的关系。
每个结点包含两部分:
- 数据域 (data):存放数据元素。
- 指针域 (next):存放后继结点的地址。
单链表结点结构如下:

// 定义单链表结点类型
typedef struct LNode {
ElemType data; // 数据域
struct LNode* next; // 指针域
} LNode, *LinkList;
在代码中,LNode* 强调这是一个结点,而 LinkList 强调这是一个单链表头指针。由于元素离散分布,单链表不支持随机存取,查找特定元素需从头遍历。
头节点与头指针:无论是否有头节点,头指针始终指向链表的第一个结点(或头节点)。引入头结点的优点在于统一了空表和非空表的处理逻辑,且第一个数据结点的位置操作与其他位置一致。
单链表的基本操作
初始化
带头结点的初始化会申请一块内存作为头结点,并将 next 置为 NULL。
bool InitList(LinkList& L) {
L = (LNode*)malloc(sizeof(LNode)); // 创建头结点
if (!L) return false;
L->next = NULL; // 初始为空
return true;
}
若不带头结点,直接将头指针设为 NULL 即可。
判空
检查头结点的 next 指针是否为 NULL。
bool Empty {
L->next == ;
}





