2-5 线性表之循环链表

2-5 线性表之循环链表_第1张图片

 更多系列博文请点击:0-数据结构与算法链接目录 

2-5 线性表之循环链表

循环链表就是链表首尾相接连成一个环,可以用单链表 和 循环链表来实现。

下面分别来看两种情况:

1、使用单链表构建循环链表

为了方便,我这里使用带头结点的单链表来构建循环链表,至于单链表带不带头结点的异同,我在前面的线性表之链表那篇文章中已经做过分析,就不再赘述。

单向循环链表是指在单链表的基础上,表的最后一个元素指向链表头结点,不再是为空。

2-5 线性表之循环链表_第2张图片

所以判断是否是最后一个元素 的条件 也从 p->next != null; 变成了 p->next != head;

由于这个判断 条件的变化,相比于原来的单链表的程序,就会在有一些地方有所变化

 

2.使用双向链表 构建 循环链表

 

 

 

2-5 线性表之循环链表_第3张图片

双向链表的程序我在前一篇也写过,所以这里也不再赘述了

也是把最后一个元素的判断条件改为:P->next != h;

然后如果是在队尾插入或删除元素,就需要改变头指针的prior,

 

程序就都不写了,改动并不大,知道是什么意思即可

 更多系列博文请点击:0-数据结构与算法链接目录 

你可能感兴趣的:(数据结构与算法,循环链表)