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

  • 纳税等级怎么从M变成B需要什么条件
  • 去税局更正申报需要什么资料,忘记带营业执照
  • 银行短期存款利息怎么算
  • 递延所得税资产和负债怎么理解
  • 国内支付业务收入怎么算
  • 工程施工企业的账务处理
  • 应收账款让售账务处理
  • 发票报销的条件是什么?
  • 劳务发票税率营改增后是多少?
  • 计提费用的时候可以计提税金吗
  • 企业所得税少交了被税局查到怎么处理
  • 私账对私账不用交税吗
  • 实收资本印花税怎么申报税目
  • 低价销售代替非正常损失避免转出进项税?
  • 小规模纳税人的季度
  • 企业合同约定调岗不接受辞退没赔偿成立吗
  • 24个问题
  • 股东向公司借款需要交税吗
  • 企业的应收账款周转率越大,说明发生坏账
  • 成品油电子普通发票开错了
  • 利润表所得税费用为负数
  • 境外取得收入要不要交企业所得税
  • 公共租赁住房的供应对象不包括
  • 房地产行业的增值税是多少
  • 企业借款利息收入企业所得税
  • 加装固态后如何分盘
  • 微软输入法打不出汉字只有拼音
  • win7系统没有桌面图标怎么办
  • 会计监督作用
  • 会计跨年业务的处理
  • bios中如何关闭cd/dvd
  • 隐藏登录界面的软件
  • SSDP Discovery Service 是什么可以禁用吗
  • 辞退补偿金额怎么做账
  • 如何利用路由器登陆花生壳
  • PHP:imageantialias()的用法_GD库图像处理函数
  • mysql事务执行流程
  • php分层架构
  • 前端数据导出为excel
  • 变量与数据
  • phpcms目录结构
  • 美团平台技术部是干什么的
  • 工资的计提基数
  • 进项税需要转出的分录
  • 货币资金的计税基础
  • 公司清理固定资产怎样交税
  • 商品互换概念
  • 汇兑损益计入营业外收入吗
  • 在职职工在单位应享受哪些待遇
  • 教育培训机构的老师可以评职称吗
  • 应收账款和预收账款都是企业的债权
  • 跨年的个人所得税可以更正吗
  • 加计抵减需要计税吗
  • 二次加工型的企业有哪些
  • Navicat for MySQL定时备份数据库及数据恢复详解
  • 一次性关闭所有窗口的快捷键
  • 电脑xp系统运行速度慢
  • win7系统打不开浏览器
  • winxp系统怎么安装
  • 如何手动修复模糊图片
  • linux网络优化
  • linux安装tmux
  • linux网卡bound
  • linux查内存信息
  • 批量win10激活码怎么弄
  • opengl es 3.2
  • 安卓新创手势
  • perl -p -i
  • 又拍云cdn配置
  • unitystudio手机版
  • Spring+MyBatis+Velocity+BootStrap实现Android混合App快速高效服务端
  • linux守护进程管理
  • 批处理保存文件
  • jquery教程 csdn
  • jquery滚动条滚动事件
  • javascript new fun的执行过程
  • 8倍社会平均工资 北京
  • 地税税额怎么计算
  • 青岛国税服务电话
  • 日本海关关税税率表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设