链表是一种不需要连续空间存储的线性数据结构,通过指针把数据节点链接起来。数据节点的逻辑顺序取决于链表指针链接的先后顺序,同时,链表也有:单链表、双链表、循环链表等多类。
定义
链表是由一系列节点组成,除此之外链表还有几个基本概念:
- 数据节点
一般由两块组成:数据域、指针域。
- 首元节点
链表的第一个数据节点。
- 头节点
非必要节点,放在第一个数据节点前。一般用于存储链表的信息(比如说链表长度等)和保证数据节点操作的统一性。
- 头指针
指向第一个节点的指针,如果有头节点则指向头节点,否则指向首元节点。
单链表
最简单的一种链表,只支持一个遍历方向:链头 -> 链尾。两部分组成:当前节点的数据、指向后置节点的指针(尾节点指针指向nil)。