位置: 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访问字符串)

  • 汇算清缴补缴税款如何做账
  • 空调维修保养征收什么税?
  • 个人开具发票需要税号吗
  • 外购的产品用于投资
  • 买二手房没满2年多少税
  • 偶然所得计税依据 包不包含增值税
  • 现金比率一般多少
  • 收到知识产权专用发票
  • 单位食堂油烟管道清洗记录表
  • 计提工资后发放时结转到什么科目
  • 单位购置汽车如何入账
  • 借别人的公账转账犯法吗
  • 固定资产预计净残值最后怎么处理
  • 土地资产类型
  • 建筑企业一般纳税人提供建筑服务属于老项目
  • 马克龙成就
  • 收购药材再销售可以免税
  • 付现所得税体现在哪方面
  • 资产总额是资产负债表中的哪个数
  • 企业注销时资本公积怎么处理
  • 装修公司什么要自己买
  • 超市开具预付卡发票不征税发票上税吗
  • 坏账准备为负数怎么填资产负债表
  • 车船税可以抵扣个税吗
  • 开了红字发票销售方怎么账务处理?
  • 暂估营业收入会增加吗
  • 政府性基金收入来源
  • 零代码开发工具
  • 酒店损益类科目包括哪些
  • php header Content-Type类型小结
  • 同一控制下控股合并在合并日合并报表编报正确的有
  • php是面向过程还是面向对象
  • 蒙特维德云雾森林
  • 税款减免科目月数怎么算
  • Es6的新特性promise对象的设计初衷是
  • load命令怎么用
  • 微服务组件面试题
  • 出口货物退货会退税吗
  • 现金流量表里的其他指的是什么
  • 单位人才账户如何开立
  • 【MongoDB for Java】Java操作MongoDB数据库
  • 现金溢余涉及的科目
  • 固定资产的
  • 金税盘技术服务费怎么交费
  • 机动车发票红冲后重新开具
  • 现金形式福利费个税软件怎么申报个税
  • 工程项目立项前的安全评估
  • 少计提的税费如何补提
  • 一张凭证上可以写多个摘要吗
  • 合同没签定金可以退的吗
  • 出口退税计算公式
  • 分配股利需要缴纳个税吗
  • 电子行程单如何下载
  • 劳务派遣税率是多少2023
  • 生产能量等于什么
  • 公司的三证合一是什么
  • sql server错误和使用情况报告
  • win8蓝屏解决方法
  • 详细介绍的英文
  • 深度u盘装xp系统教程
  • ubuntu如何下载
  • slserve.exe - slserve是什么进程
  • win8.1检测不到更新
  • 微软首席科学家薪水
  • surface pro7应用
  • win10的快速访问
  • nodejs链接mysql
  • 利用漏洞每天获利万元
  • 特牛的群名
  • jquery点击方法
  • jQuery EasyUI tree 使用拖拽时遇到的错误小结
  • js的点击事件怎么做
  • 用javascript
  • js用于
  • 谈谈对人才是第一资源的理解
  • javascript如何禁用
  • 总包发票税率
  • 公司变更税务局
  • 专家费缴税标准
  • 土增税税负率一般多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设