1
算法与数据结构  C语言版
1.4.3 2.3 线性表的链式存储结构
2.3 线性表的链式存储结构

上一节介绍了线性表的顺序存储结构,这种存储方式虽有很多优点,但也有它固有的缺点。例如,元素的插入和删除需要移动大量的元素,而且不便于多个表共享存储空间,表的容量也难以扩充。为了克服这些缺点、本节将介绍线性表的另一种存储结构——链式存储结构。由于它不要求逻辑上相邻的元素在物理位置上一定相邻,因此是一种非顺序存储结构。

链式存储结构用一组任意的存储单元依次存储线性表中的各元素。这组存储单元可以是连续的,也可以是不连续的。为反映出各元素在线性表中的前后关系,除了存储元素本身的信息外,还需添加一个或多个指针域。指针域的值叫指针,又称作链,它用来指示数据元素的存储首址。这两部分信息一起组成一个数据元素的存储映像,称存储映像为结点。

根据每个结点所含指针的个数,链表分为两大类,即单链表和多重链表;而根据指针的连接方式,链表又可分为普通链表和循环链表。