首页 理论教育 循环链表及其基本运算

循环链表及其基本运算

时间:2023-02-28 理论教育 版权反馈
【摘要】:为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表的结构。在循环链表中增加了一个表头节点,其数据域为任意或者根据需要来设置。循环链表的头指针指向表头节点。如图2-24所示是循环链表的示意图。因此,在任何情况下,循环链表中至少有一个节点存在,从而使空表与非空表的运算统一。循环链表的插入和删除方法与线性单链表基本相同。

2.5.3 循环链表及其基本运算

在前面所讨论的线性链表中,其插入与删除的运算虽然比较方便,但还存在一个问题,在运算过程中对于空表和对第一个节点的处理必须单独考虑,使空表与非空表的运算不统一。为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表(Circular Linked List)的结构。

循环链表的结构与前面所讨论的线性链表相比,具有以下两个特点:

(1)在循环链表中增加了一个表头节点,其数据域为任意或者根据需要来设置。指针域指向线性表的第一个元素的节点。循环链表的头指针指向表头节点。

(2)循环链表中最后一个节点的指针域非空,而是指向表头节点。即在循环链表中,所有节点的指针构成了一个环状链。

如图2-24所示是循环链表的示意图。其中如图2-24(a)所示是一个非空的循环链表,如图2-24(b)所示是一个空的循环链表。在此,所谓的空表与非空表是针对线性表中的元素而言。

在实际应用中,循环链表与线性单链表相比主要有以下两个方面的优点:

(1)在循环链表中,只要指出表中任何一个节点的位置,就可以从它出发访问到表中其他所有的节点,而线性单链表做不到这一点。

(2)由于在循环链表中设置了一个表头节点。因此,在任何情况下,循环链表中至少有一个节点存在,从而使空表与非空表的运算统一。

循环链表的插入和删除方法与线性单链表基本相同。但由循环链表的特点可以看出,在对循环链表进行插入和删除的过程中,实现了空表与非空表的运算统一。

img34

图2-24 循环链表的逻辑状态

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈