线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素也就是说你这个可以放在A地点,这个可以放在E地点,A地点和E地点中间可以隔开一个C地点和D地点,这样是允许的),这组存储单元可以存在内存中未被占用的任意位置。
比起顺序存储结构每个顺序存储结构只需要存储一个位置就可以了。现在链式存储结构中,除了要存储数据元素信息外,还要存储他的后继元素的存储地址(指针)。也就是说除了存储其本身的信息外,还需存储一个指示其直接后继的存储位置的信息。
我们把存储数据元素信息的域称为数据域(域就是地方的意思),把存储直接后继位置的域称为指针域。指针域中存储的信息称为指针或链,这两部分信息组成数据元素称为存储映像,称为结点(Node)。
n个结点链接成一个链表,即为线性表(a1,a2,a3,...,an)的链式存储结构。
因为此链表的每个结点中只包含一个指针域,所以叫做单链表。(后边还有其它链表)如下图:
对于线性表来说,总得有个头有个尾(这样你才能知道从哪里开始从那里结束),链表也不例外,我们把链表中的第一个结点的存储位置叫做头指针,最后一个结点指针为空(NULL)表示结束。
头指针与头结点的异同:(头结点的数据域一般不存储任何信息。(第一个的特权))
--头指针:
- 头指针是指链表指向第一个结点的指针,若链表有头结点的话,那么头指针是在头结点之前指向头结点的指针。
- 头指针具有标识作用,所以常用头指针冠