定义
- n个节点离散分配;
- 彼此通过指针相连;
- 每个节点只有一个前驱节点,每个节点只有一个后续节点;
- 首节点没有前驱节点,尾节点没有后续节点。
专业术语:
- 首节点:第一个有效节点
- 尾节点:最后一个有效节点
- 头结点:头结点的数据类型和首节点类型一样,第一个有效节点之前的那个节点,头结点并不存放有效数据[可以方便对链表的操作]
- 头指针:指向头结点的指针变量
- 尾指针:指向尾节点的指针变量
如果希望通过一个函数来对链表来处理,该函数需要接受哪些参数:
- 仅仅需要一个参数:头指针
- 因为我们通过头指针可以推断出链表其他所有信息
- 节点构造:
-
#include <stdio> typedef struct Node { int data;//数据域 struct Node * pNext;//指针域 }NODE *PNODE//NODE等价于struct Node PNODE等价于struct Node * int main(void) { return 0; }
分类
- 单链表
- 双联表:每一个节点有两个指针域
- 循环链表:能通过任何一个节点找到其他所有节点
- 非循环链表:
算法
- 遍历
- 查找
- 清空
- 销毁
- 求长度
- 排序
- 删除节点