线性表的链式存储结构
顺序存储结构不足的解决办法
缺点:最大的缺点就是插入和删除时需要移动大量元素。
为了表示每个数据元素ai与其直接后续数据元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后续的信息。我们把存储数据元素信息的域称为数据域,把存储直接后续位置的域称为指针域。
指针域中存储的信息称作指针或域,这两部分信息组成数据元素ai的存储映像,称为结点(Node)。
N个结点链接成一个链表,即为线性表(a1,a2,…an)的链式存储结构,因为此链表的每个结点中只包含一个指针域,所以叫单链表。
链表中第一个结点的存储位置叫做头指针;最后一个结点指针为空(NULL)。
会在单链表的第一个结点前附设一个结点,称为头结点。可以不存储任何信息。
typedef structNode
{
ElemType data;
struct Node *next;
} Node;
typedef structNode *LinkList;