4.双向链表
双向链表是每个结点除后继指针域外还有一个前驱指针域,它有带头结点和不带头结点,循环和非循环结构,双向链表是解决查找前驱结点问题的有效途径。
结点结构如图示:
数据结构——线性表链式存储结构4(C语言)
下图是带头结点的循环双向链表的结构,可见,其前驱指针和后继指针各自构成自己的循环单链表。
设指针p指向第i个数据元素结点,则p->next指向第i+1个数据元素结点,p->next->prior仍指向第i个数据元素结点,即p->next->prior=p;同样p->prior->next=p。
数据结构——线性表链式存储结构4(C语言)
循环双向链表的插入过程如图示:数据结构——线性表链式存储结构4(C语言)
删除过程如图示:
数据结构——线性表链式存储结构4(C语言)
5.静态链表
在数组中增加一个(或两个)指针域用来存放下一个(或上一个)数据元素在数组中的下标,从而构成用数组构造的单链表。因为数组内存空间的申请方式是静态的,所以称为静态链表,增加的指针称做仿真指针。
结构如下:
数据结构——线性表链式存储结构4(C语言)
数据结构——线性表链式存储结构4(C语言)

相关文章: