1. 概念
链表,用于存储逻辑关系为 "一对一" 的数据。与顺序表不同,使用链表存储的数据元素,其物理存储位置可以是不连续的。
链表中每个数据的存储都由以下两部分组成:
- 数据元素本身,其所在的区域称为数据域;
- 指向直接后继元素的指针,所在的区域称为指针域;
即链表中存储各数据元素的结构如图 所示:
图所示的结构在链表中称为节点。也就是说,链表实际存储的是一个一个的节点,真正的数据元素包含在这些节点中 。
2. 单链表
单链表中每个结点的存储地址是存放在其前驱节点指针域中,而开始结点无前驱节点。
链表由头指针唯一确定。
终端结点无后继节点,故终端结点的指针域为空,即NULL。
3. 双链表
双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。