前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间。
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被占用的任意位置。
比起顺序存储结构每个数据元素只需要存储一个位置就可以了。现在链式存储结构中,除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。
一、链式存储结构定义
我们把存储数据元素的域称为数据域。
把存储直接后继位置的域称为指针域。
指针域中存储的信息称为指针或者链。
这两部分信息组成数据元素称为存储映像,称为结点(Node)
n个结点链接成一个链表,因为此链表的每个结点中只包含一个指针域,所以叫做单链表。
二、单链表存储结构
单链表图例:
空链表图例:
我们在C语言中可以用结构指针来描述单链表。
typedef struct No