2.2 线性表的链式存储结构
链式结构中,除了要存数据元素信息外,还要存它的后继元素的存储地址。为了表示每个数据元素ai 与其直接后继数据元素ai+1之间的逻辑关系,对于元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继信息(即直接后继的存储位置)。我们把存储数据元素信息的域成为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称作指针或链。这两部分信息组成数据元素ai的存储映像,称为结点(Node)。
n个结点链结成一个链表,即为线性表的链式存储结构。
分为单链表,静态链表,循环链表和双向链表。
(1)单链表:链表的每个节点中只包含一个指针域。
(2)静态链表:用数组来代替指针,来描述单链表。
(3)循环链表:将单链表中终端节点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。
(4)双向链表:在单链表的每个结点中,在设置一个指向其前驱结点的指针域。
下面将分别实现以上几种结构。