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

  • 用友软件生成凭证合并进项税
  • 一个人可以做多少家公司法人
  • 房地产企业怎么认定
  • 待报解预算收入计入什么科目
  • 委外加工怎么做仓库账
  • 理财产品分红和不分红的区别
  • 车票抵扣进项税申报在哪一栏
  • 机耕道属于水利还是土地整治
  • 无形资产计税基础怎么算
  • 进项税的现金流量项目
  • 小企业会计准则以前年度损益调整
  • 遗失的发票可以补开吗
  • 简易计税的销项税怎么处理
  • 临时售楼处要考虑消防吗
  • 中标服务费可以抵扣进项税吗
  • 印花税法律制度规定不征收印花税的是什么
  • 免税的投资收益需要调整利润表吗
  • 企业销售额达到多少交企业所得税
  • 个人所得税手续费
  • 公司支付劳务派遣人员工资账务处理
  • 仓储费怎么账务处理
  • 1697509419
  • 销售固定资产的收入计入什么科目
  • 建设单位管理费费率
  • 财务会计中关于坏账损失的账务处理
  • 小米路由器启动不了
  • 预收账款与应收账款为什么合并
  • 用后期进项抵欠怎么做账
  • windows 搜索工具
  • 建筑施工企业是落实施工现场带班制度的第一责任人
  • hypertrm.exe系统错误
  • linux特殊权限设置
  • window php安装
  • 如何做好零售商
  • 商品先入库后得发票如何做账
  • 银行承兑汇票贴现怎么算
  • 坎伯兰森林西部
  • 财政拨款结转的二级科目有哪些
  • 复核人和收款人一样了怎么办
  • 给客户维修设备更换配件怎么开票
  • 预收账款的销售分录
  • phpcms v9网页禁止复制
  • 小企业会计准则季度报表
  • 公户直接转给私人账户违法么
  • 保理公司会计核算讲解
  • 一般计税增值税预缴税款怎么算
  • 待处理财产损益是什么类科目
  • 餐饮费发票可以抵扣进项税吗
  • 有限合伙企业收入怎么做账
  • 进项税转出年底怎么结转
  • 存量资金上缴财政怎么做账
  • 公司车辆交强险怎么网上买
  • 向客户收取贴纸费用怎么说
  • 进货没开发票,销货却开发票应怎么做帐?
  • 返利开红字发票怎么做账
  • 费用分析的作用
  • 买钢管扣件
  • 收到银联商务客户短信
  • 公司食堂招待客户,客户付了钱怎么入账
  • 保险由承租方还是出租方承担
  • sql数据库性能
  • 如何远程连接小米摄像头
  • win7自带画图软件
  • Ubuntu操作系统安全维护
  • linux mount -o remount
  • centos6.0安装教程
  • win10系统怎么关闭病毒防护
  • 如何去掉桌面图标的蓝底
  • win10升级最新版
  • 升级win8系统
  • div +css
  • dos批处理文件的扩展名
  • python发送信息到微信
  • 用javascript
  • android 发短信
  • 北京税务局网站
  • 粮食的增值税税率怎么算
  • 73平方的房子有多大
  • 为什么国家要收房产税
  • 小微企业所得税5%优惠政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设