3.6.1 顺序存储结构不足的解决办法
C同学:反正要在相邻元素间留多少空间都是有可能不够的,那不如干脆不要考虑相邻位置这个问题了。哪里有空位就放在哪里,此时指针刚好可以派上用场。
每个元素多用一个位置来存放指向下一个元素的位置的指针。
这样子从第一个元素可以找到第二个元素,第二个元素可以找到第三个元素,
依此类推,所有的元素我们就都可以通过遍历而找到了。
3.6.2 线性表链式存储结构定义
线性表的链式存储结构的特点:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。
比起顺序存储结构每个数据元素只需要存储一个位置就可以了。
现在链式存储结构中,
除了要存储数据元素信息外,还要存储它的后继元素的存储地址(指针)。
也就是说除了存储其本身的信息外,还需存储一个指示其直接后继的存储位置的信息。
我们把存储数据元素信息的域称为数据域,
把存储直接后继位置的域称为指针域。
指针域中存储的信息称为指针或链。
这两部分信息组成数据元素称为存储映像,称为结点(Node)。
n个结点链接成一个链表,即为线性表(a1, a2,a3, an)的链式存储结构。
因为此链表的每个结点中只包含一个指针域,以叫做单链表。