位置: IT常识 - 正文

python单向链表如何实现(python单链表的创建)

编辑:rootadmin

推荐整理分享python单向链表如何实现(python单链表的创建),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 单链表,python 单链表添加节点,python单链表排序,python 单链表添加节点,python单链表的基本操作,单向链表 python,python 单链表,单向链表 python,内容如对您有帮助,希望把文章链接给更多的朋友!

python单向链表如何实现(python单链表的创建)

说明

1、每个节点包括两个域、一个信息域(元素域)和一个连接域,该链接指向链接表的下一个节点,最后一个节点的链接指向空值。

2、表要素elem用于存储具体数据。链接域next用于存管下一个节点的位置

变量P指向链表头节点(首节点)的位置,可以从P出发找到表中的任意节点。

实例

classNode(object):def__init__(self,elem):""":paramelem:表元素域next:下一结点链接域cursor(cur):游标"""self.elem=elem#定义next指向空self.next=NoneclassSingleLinkList(object):"""单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一一个节点,而最后-个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。链接域next用来存放下一个节点的位置(python中的标识)变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。"""def__init__(self,node=None):self.__head=node#node.elemnode.nextdefis_empty(self):"""链表是否为空"""returnself.__headisNonedeflength(self):"""链表长度"""#cur游标,用来移动遍历节点cur=self.__headcount=0whilecurisnotNone:count+=1cur=cur.next#count记录数量returncountdeftravel(self):"""遍历整个链表"""cur=self.__headwhilecurisnotNone:print(cur.elem,end='')cur=cur.nextdefadd(self,item):"""链表头部添加元素:头插法"""node=Node(item)node.next=self.__headself.__head=nodedefappend(self,item):"""链表尾部添加元素:尾插法"""node=Node(item)#下一结点链接域不为空ifself.is_empty():self.__head=nodeelse:cur=self.__headwhilecur.nextisnotNone:cur=cur.nextcur.next=nodedefinsert(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):"""删除元素"""#考虑删除头部、尾部、中间节点cur=self.__headpre=NonewhilecurisnotNone:ifcur.elem==item:#先判断是否是头节点ifcur==self.__head:self.__head=cur.nextelse:pre.next=cur.nextbreakelse:pre=curcur=cur.nextdefsearch(self,item):"""查找节点是否存在"""#1.创建游标cur=self.__head#2.遍历游标whilecurisnotNone:#3.cur.elem=itemifcur.elem==item:returnTrueelse:cur=cur.nextreturnFalseif__name__=='__main__':ll=SingleLinkList()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/303722.html 转载请保留说明!

上一篇:python字典添加值的方法(python字典怎么添加值)

下一篇:记录--TS封装axios(tsop封装)

  • 加工企业税收优惠政策
  • 出租房屋取得的收入计入什么
  • 小规模纳税人外账处理
  • 汇兑损益结转贷方怎么调整到借方
  • 个人开增值税普票有没有限额
  • 建筑业附加税税率是多少
  • 金蝶用户管理怎么设置
  • 支票只能同城吗
  • 农村的生产经营是什么
  • 发出商品确认收入的条件
  • 在建工程抵工程款
  • 年终奖扣税标准计算器
  • 电商公司购买拍照违法吗
  • 月末结转增值税凭证
  • 小规模纳税人需要建账吗
  • 出售单位车辆如何处理业务?
  • 微信提现收取手续费多少钱
  • 笔记本电脑按键掉了怎么修
  • Yii2使用驼峰命名的形式访问控制器(实例讲解)
  • 安装win7系统的硬件要求
  • php面试题目100及最佳答案
  • 财务冲抵如何处理
  • 软件开发公司排行榜
  • 调整多计提企业利润
  • js如何实现异步编程
  • php设置中文
  • 商业模式诠释了一个企业如何赚钱
  • 如何利用数据有效性制作单元格菜单
  • 魔改apk
  • 增值税系统技术维护费抵扣只能当月申报
  • 限定性和非限定性资产的区别
  • 未认证的进项税发票入账
  • 帝国cms使用手册
  • 如何关闭mysqld
  • 调整汇兑损益的摘要怎么写?
  • persona工具
  • 其他应收款主要是什么
  • 应收账款在贷方为负数表示什么
  • 财务费用包含了利息费用吗
  • 开出去的发票没有进项发票应如何核算成本?
  • 公司账户的钱如何转出
  • 外贸公司出口退税进项发票没及时开票有影响吗
  • 电商会计怎么做账
  • 分包工程 税务 账务处理
  • 收据大写后面的字怎么写
  • 资产负债表税务局能看到吗
  • 会计结账一般都是谁做
  • 借款和工程款可以分开吗
  • 电信通讯费发票抬头
  • 库存现金盘点表监盘人是谁
  • 城市维护建设税的计税依据
  • 编写sql需要注意什么
  • mysql数据库开发技术
  • Windows Server 2008故障转移群集简介
  • Windows Remote Shell(WinRM)使用介绍
  • freebsd使用手册
  • mmc无法创建管理单元怎么办win11
  • win7虚拟内存怎么设置
  • mac怎么保存到桌面
  • win8怎么设置
  • centos7网络配置文件在哪
  • win7系统的分区类型怎么选
  • win10闹钟软件
  • onionwormimmune.exe是什么
  • w10开机欢迎界面设置
  • 电脑win10显卡驱动
  • opengl csdn
  • bootstrap table edit
  • iframe用法和代码
  • JQueryEasyUI之DataGrid数据显示
  • unity简单项目
  • 如何使用jquery
  • 广东税务人工服务
  • 陕西省国家税务总局班子成员
  • 税务局人员调动
  • 税控专用设备包括哪些
  • 个税扣款怎么查询
  • 金华市税务
  • 中国企业银行可以转账吗
  • 纳税明细怎么查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设