python3循环链表检测、返回首节点_【数据结构与算法Python描述】——单向循环链表简介、Python语言实现及应用...

【数据结构与算法Python描述】——单向线性链表简介及其Python实现给出了链表的最简单形式——单向线性链表,以及其Python语言实现和相关应用。

实际上,基于单向线性链表的变形很多,而单向循环链表(本文简称“循环链表”)是其中一种较为常见的形式。

一、单向循环链表引入

在文章【数据结构与算法Python描述】——队列和双端队列简介及其高效率版本Python实现中,我们首次引入了循环的概念,但实际上列表的内存模型并不存在任何首尾相连的特征,只是通过使用取模运算可以使得类似循环的特点。

对于链表,特别是单向线性链表,通过对其进行一定的变形可以获得真正意义上的环状形态,即如下图所示,让原本引用None的单向线性链表尾结点的next域引用头结点。

实际上,对于循环链表,已经不存在所谓头和尾的概念了,所以一般地可将循环链表画成如下图所述形式。对于这一说法以及循环链表的模型类比理解,一个现实中的例子是上海的地铁4号线,这是一条以横贯方式连接上海所有主要地铁线的环形线。

尽管说循环链表不存在开始和结束的概念,还是有必要定义一个变量使其引用循环链表中的某一个结点,上图使用名为current的变量,只有这样才能通过类似current = current.next的语法遍历找到链表中的所有节点。

二、单向循环链表应用

对于循环链表,我们不会像单向线性链表一样去实现其ADT的所有方法,因为循环不存在所谓头(尾)部插入(删除)等概念,即使实现了也大同小异。更多地,我们将循环链表的一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值