2-5 线性表之循环链表

本文介绍了线性表中循环链表的构建方法。循环链表是链表首尾相连成环,可通过单链表和双向链表实现。使用单链表构建时,将表的最后一个元素指向头结点;使用双向链表构建时,修改最后一个元素的判断条件,在队尾插入或删除元素时改变头指针的 prior。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

2-5 线性表之循环链表

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

下面分别来看两种情况:

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

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

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

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

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

 

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

 

 

 

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

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

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

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值