位置: 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封装)

  • 二手车经纪公司和中介的区别
  • 子公司之间股权转让
  • 流动资产属于经营资产还是得经营资产
  • 出口消费税税率
  • 增值税发票认证平台
  • 工程施工的借方和贷方
  • 进项税额转出怎么结平
  • 小微企业减免附加税会计分录
  • 五金销售公司
  • 银行理财怎么做才能赚钱
  • 企业为职工购买的商业保险属于职工薪酬吗
  • 餐饮企业销售外购食品 增值税税率cpa
  • 小企业外币交易
  • 饭店的现金日记账填写样本
  • 材料已入库,发票账单未到的会计分录
  • 会计人士必知建筑业主要成本会计分录一览
  • 有形动产租赁印花税税率是多少
  • 2017年一般纳税人增值税优惠
  • 印花税税基含不含增值税
  • 建筑企业建筑业
  • 辅助核算的内容
  • 企业投资的工程项目包括
  • win7关机提示
  • 代扣代缴代收代缴税款业务内容
  • 代扣代缴个税手续费
  • 第36届大众电影百花奖直播回放
  • 【修改huggingface transformers默认缓存文件夹】
  • php curlfile
  • 企业人员工资怎么避税
  • 逾期利息算法
  • thinkphp框架流程原理
  • 股东已转让股权还可以追究出资吗
  • vue for循环遍历对象取值
  • mac vue搭建本地环境
  • 如何修改家里的wifi密码
  • 公允模式投资性房地产出售
  • 微信红包 python
  • php使用pdo连接数据库
  • yii框架教程
  • 主营业务收入的t型账户怎么写
  • Yii 连接、修改 MySQL 数据库及phpunit 测试连接
  • 小规模纳税人增值税专用发票税率
  • 付国外专利费用需办什么手续
  • 固定资产报废该怎么处理
  • windows7的安装方式
  • 出口合同的流程
  • 哪个命令可以对mysql数据库做完全备份
  • 上年未结转的成本今年可以结转吗
  • 运费发票抵扣要求
  • 短期负债率和流动负债率
  • 公司代缴社保如何查询
  • 为什么贷款要收手续费
  • 应付暂估会计处理
  • 公司日常费用支出表怎么做
  • 个税和社保有什么区别
  • 小规模公司怎样添加员工
  • 过账发票和不过票的区别
  • 淘宝电商怎么做账
  • mysql a.
  • sql切割字段
  • win8怎么没有我的电脑
  • 微软9月30日将发行股票
  • window10怎么启用net 3.5
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • xp停在windows界面
  • win7系统打开浏览器后突然卡住了
  • xp安装磁盘格式
  • WINDOWS10系统怎样看主板
  • windows10 2021预览版
  • js添加列表项
  • 前端html中怎么让文字左移
  • 使用jquery实现的项目
  • 注册表cmd
  • toggle button什么作用
  • androidstudiosdk
  • shell命令行参数个数
  • unity mrt
  • python爬取某人所有朋友圈
  • 税务处理决定书属于行政处罚吗
  • 中国有哪些自由贸易港
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设