位置: IT常识 - 正文

Python单向循环链表的创建(python中循环怎么写)

编辑:rootadmin

推荐整理分享Python单向循环链表的创建(python中循环怎么写),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python循环链表方法,python只循环一次,python 单行循环,python 单行循环,python循环单链表的基本操作,python 单行循环,python循环单链表的基本操作,python循环单链表的基本操作,内容如对您有帮助,希望把文章链接给更多的朋友!

Python单向循环链表的创建(python中循环怎么写)

说明

1、当实例化一个单向循环链表时,该链表是一个空链表,在将节点依次链接之后,链表中才会出现节点和数据。

2、在链表中,为了找到链表的某个节点,需要从链表的头节点开始,依次搜索。

因此,在实例单向循环链表中,必须定义链表的头。当添加头节点时,链表的头指向头节点。

实例

classNode(object):def__init__(self,elem):""":paramelem:表元素域next:下一结点链接域cursor(cur):游标"""self.elem=elem#定义next指向空self.next=NoneclassSingleCircularLinkList(object):"""单向循环链表:单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为none,而是指向链表的头节点"""def__init__(self,node=None):self.__head=node#node.elemnode.nextifnode:node.next=nodedefis_empty(self):"""链表是否为空"""returnself.__headisNonedeflength(self):"""链表长度"""ifself.is_empty():return0#cur游标,用来移动遍历节点cur=self.__headcount=1whilecur.next!=self.__head:count+=1cur=cur.next#count记录数量returncountdeftravel(self):"""遍历整个链表"""ifself.is_empty():returncur=self.__headwhilecur.next!=self.__head:print(cur.elem,end='')cur=cur.next#退出循环,cur指向尾结点,但尾节点的元素未打印print(cur.elem)defadd(self,item):"""链表头部添加元素:头插法"""node=Node(item)ifself.is_empty():self.__head=nodenode.next=nodeelse:cur=self.__headwhilecur.next!=self.__head:cur=cur.next#退出循环,cur指向尾结点node.next=self.__headself.__head=node#方式1:cur.next=nodecur.next=self.__head#方式2defappend(self,item):"""链表尾部添加元素:尾插法"""node=Node(item)#下一结点链接域不为空ifself.is_empty():self.__head=nodenode.next=nodeelse:cur=self.__headwhilecur.next!=self.__head:cur=cur.next#方式1:#node.next=cur.next#cur.next=node#方式2:cur.next=nodenode.next=self.__headdefinsert(self,pos,item):"""pos:pos从0开始pre:指定节点前一节点,相当于游标node:插入的指定节点指定位置添加元素"""#ifpos<=0头插法ifpos<=0:self.add(item)#elifpos>(self.length()-1)尾插法elifpos>(self.length()-1):self.append(item)#else插入法else:pre=self.__headcount=0#当循环退出后,pre指向pos-1whilecount<(pos-1):count+=1pre=pre.nextnode=Node(item)node.next=pre.nextpre.next=nodedefremove(self,item):"""删除元素"""#考虑删除头部、尾部、中间节点ifself.is_empty():returncur=self.__headpre=Nonewhilecur.next!=self.__head:ifcur.elem==item:#先判断是否是头节点ifcur==self.__head:#找到尾节点rear=self.__headwhilerear.next!=self.__head:rear=rear.nextself.__head=cur.nextrear.next=self.__headelse:#中间节点pre.next=cur.nextreturnelse:pre=curcur=cur.next#退出循环,cur指向尾结点ifcur.elem==item:ifcur==self.__head:#链表只有一个节点self.__head=Noneelse:pre.next=cur.nextdefsearch(self,item):"""查找节点是否存在"""ifself.is_empty():returnFalse#1.创建游标cur=self.__head#2.遍历游标whilecur.next!=self.__head:#3.cur.elem=itemifcur.elem==item:returnTrueelse:cur=cur.next#对于最后一个元素或只有一个元素ifcur.elem==item:returnTruereturnFalseif__name__=='__main__':ll=SingleCircularLinkList()ll.is_empty()l1=ll.length()print(l1)ll.append(55)ll.is_empty()l2=ll.length()print(l2)ll.append(2)ll.add(8)ll.append(3)ll.append(4)ll.append(5)#5518234ll.insert(-1,9)#98552182345ll.insert(2,100)#98100552182345ll.travel()

以上就是Python单向循环链表的创建,希望对大家有所帮助。更多Python学习指路:Python基础教程

本文链接地址:https://www.jiuchutong.com/zhishi/310908.html 转载请保留说明!

上一篇:phpcms如何调二级导航(phpcms生成html)

下一篇:python如何访问字典(python访问字符串)

  • 真我GT2大师探索版支持无线充电吗

    真我GT2大师探索版支持无线充电吗

  • 哈啰车主新手怎样接单流程(哈啰车主新手怎样抢单快呢)

    哈啰车主新手怎样接单流程(哈啰车主新手怎样抢单快呢)

  • wps文档怎么做链接(wps文档怎么做成链接)

    wps文档怎么做链接(wps文档怎么做成链接)

  • 华为nova7pro有耳机孔的吗(华为nova7pro有耳机孔吗)

    华为nova7pro有耳机孔的吗(华为nova7pro有耳机孔吗)

  • 什么叫连续包月(什么叫连续包月首月)

    什么叫连续包月(什么叫连续包月首月)

  • 宽带没欠费却上不了网(宽带没欠费突然连不上网了)

    宽带没欠费却上不了网(宽带没欠费突然连不上网了)

  • 小米手机是哪个国家生产的(小米手机是哪个国家的品牌)

    小米手机是哪个国家生产的(小米手机是哪个国家的品牌)

  • 华为手机半夜自动重启是什么原因(华为手机半夜自动放音乐)

    华为手机半夜自动重启是什么原因(华为手机半夜自动放音乐)

  • 一个手机能注册几个健康码(一个手机能注册两个闲鱼号吗)

    一个手机能注册几个健康码(一个手机能注册两个闲鱼号吗)

  • 拼多多个人开店需要多少保证金(拼多多个人开店需要营业执照吗)

    拼多多个人开店需要多少保证金(拼多多个人开店需要营业执照吗)

  • 纸质文件怎么扫描成电子版(纸质文件怎么扫描发给别人)

    纸质文件怎么扫描成电子版(纸质文件怎么扫描发给别人)

  • 电脑怎么设置平铺(电脑怎么设置平板屏保时间)

    电脑怎么设置平铺(电脑怎么设置平板屏保时间)

  • 快手退货钱多久到账(快手退货退款多长时间内处理完)

    快手退货钱多久到账(快手退货退款多长时间内处理完)

  • 快手pk时找不到好友(快手pk没有声音怎么回事)

    快手pk时找不到好友(快手pk没有声音怎么回事)

  • 苹果手机闪光灯不亮了(苹果手机闪光灯在哪里关闭)

    苹果手机闪光灯不亮了(苹果手机闪光灯在哪里关闭)

  • qq里的被挡访客什么意思(qq里的被挡访客能看到些什么消息)

    qq里的被挡访客什么意思(qq里的被挡访客能看到些什么消息)

  • 京享值为什么会下降(京享值为什么会下降 京享值有计算周期)

    京享值为什么会下降(京享值为什么会下降 京享值有计算周期)

  • 什么浏览器支持flash插件(什么浏览器支持icloud官网)

    什么浏览器支持flash插件(什么浏览器支持icloud官网)

  • ipad怎么下陌陌(平板电脑可以下载陌陌吗)

    ipad怎么下陌陌(平板电脑可以下载陌陌吗)

  • 知道对方手机号码能找到她位置吗(知道对方手机号和姓名怎样查他的信息)

    知道对方手机号码能找到她位置吗(知道对方手机号和姓名怎样查他的信息)

  • 手机没欠费为什么停机(手机没欠费为什么数据用不了)

    手机没欠费为什么停机(手机没欠费为什么数据用不了)

  • 什么会出现对方正在输入(什么情况会出现对方正在通话中)

    什么会出现对方正在输入(什么情况会出现对方正在通话中)

  • vue慢动作怎么拍(vue视频特效怎么弄的)

    vue慢动作怎么拍(vue视频特效怎么弄的)

  • 华为9plus怎么截屏(华为9plus怎么截长屏)

    华为9plus怎么截屏(华为9plus怎么截长屏)

  • 启动盘怎么恢复成u盘(u盘变成启动盘怎么恢复)

    启动盘怎么恢复成u盘(u盘变成启动盘怎么恢复)

  • 电脑word页面设置在哪(电脑word页面设置在哪里找?)

    电脑word页面设置在哪(电脑word页面设置在哪里找?)

  • 微博会员自动续费怎么取消(微博会员自动续费怎么取消支付宝)

    微博会员自动续费怎么取消(微博会员自动续费怎么取消支付宝)

  • 烟叶税计入什么
  • 两处以上取得工资如何交社保
  • 企业所得税属于地方税吗
  • 工资代扣的工会经费怎么做账
  • 分支机构是否享受小微企业企业所得税优惠?
  • 零食发票能抵税吗
  • 保险赔款个人所得税计算
  • 赠送给客户的产品发货单要填写单价?
  • 低值易耗品库存
  • 注册资本未到位转让股权
  • 复利现值系数和普通年金现值系数关系
  • 原材料做成库存会计分录
  • 收据开17%的票税负因子是多少?
  • 营业外支出税前可以扣除吗
  • 对公人民币转账、汇款(含退汇)分录
  • 发票一直显示在报送中
  • 变更办税人需要原办税人去吗
  • 开具增值税发票的注意事项有哪些?
  • 开具红字发票后又开了蓝字发票 怎么入账
  • 纸质承兑汇票到期怎么兑现,多久能到帐
  • 自购销售和委托代购
  • 费用应计入管理费用的有
  • 劳务费个税计算方式
  • 如何设置电脑任务栏显示
  • 个税是什么意思必须交吗
  • 未担保余值的账户怎么查
  • 建筑公司收到的劳务费怎么做账
  • 包装物租金怎么计算增值税
  • 2023年电子发票如何申领
  • 结转消费税的会计分录
  • win10多任务分屏怎么关闭
  • win7系统安装包多大
  • 预付采购材料货款
  • frameworkscheduled
  • Notojima岛附近的牡蛎养殖场,日本石川县 (© divedog/Shutterstock)
  • 科纳克里市
  • 发行股票溢价计入
  • 收到某单位投入一批原材料
  • Python web开发基础教程的心得
  • htmlcss导航栏网页
  • thinkphp跨域
  • php获取flag
  • 库存盘亏进项税怎么抵扣
  • 原材料存货跌价准备会计分录
  • 结转清理损失会计分录
  • ps橡皮擦工具的作用是什么
  • 应收票据到期后账务处理
  • 普通发票有什么
  • 注册资本认缴出资日期是什么意思
  • 对于投资者而言购买债券型理财产品面临的最大风险来自
  • 小规模未达起征点申报表怎么填
  • 纳税人及时提供信息
  • 个税申报系统非正常可以改为正常吗?
  • 销售方销售返利单独开具
  • 多提税金的具体分录
  • 机械租赁公司挂牌流程
  • 租赁的初始直接费用有哪些
  • 小规模纳税人购入货物收到增值税专用发票
  • 直租业务可以抵房租吗
  • 明细分类账表格
  • Mysql Explain 详细介绍
  • 怎么在电脑上设置快捷图标
  • win8.1开机密码忘了
  • 搜索框打开
  • windows8怎么用
  • ubuntu fsl
  • ubuntu写脚本
  • centos默认字体
  • 局域网下访问vue点击无反应
  • 触发器csdn
  • ruby 递归
  • Android 获取网络时间
  • python汉字字符
  • 如何理解vue
  • vue移动端app开发流程
  • JavaScript中的数据类型分为两大类
  • js设计模式有哪些
  • 现在是一般纳税人,属于小规模发生的业务怎么开票
  • 国地税合并人员瘦身
  • 债权收购协议书
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设