线性表的链式存储时用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,必须采取附加信息表示数据元素之间的顺序关系。因此,对每个表元素,除了存储元素本身的值外,还带有一个指向其后继元素的地址,这样就可以表示元素之间的顺序关系了,表结构如下:
数据域 地址域(链)
data next
它有两个域(field,又叫字段)组成,其中,data存储元素本身的值,称为数据域;next存储后继元素的地址,称为地址或者链(link)。上述的这种结构通常称为结点(node)。
一个结点表示一个数据元素,通过结点中的地址域把结点链接起来,结点之间的链接关系体现了线性表中数据元素间的顺序关系。
上图的结构称为链表(linked list),head是链表第一结点的地址,称为链表的头指针,最后一个结点的地址域为空指针(null,图中用“^”表示),表示其后不再有结点,由于每个结点中只有一个地址域,所以该链表又称为单链表(singly linked list)。从head开始,沿着链的方向前进,就可以顺序的访问链表中的每个结点。