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

  • 小米5手环怎么绑定手机(小米5手环怎么调时间和日期)

    小米5手环怎么绑定手机(小米5手环怎么调时间和日期)

  • 如何关闭山姆自动续费(山姆app如何关闭自动续费)

    如何关闭山姆自动续费(山姆app如何关闭自动续费)

  • c盘哪些文件可以删除(C盘哪些文件可以压缩)

    c盘哪些文件可以删除(C盘哪些文件可以压缩)

  • 三星s10多少瓦快充(三星s10支持多大功率快充)

    三星s10多少瓦快充(三星s10支持多大功率快充)

  • 小米打印机能用其他相纸吗(小米打印机能用别的相片纸吗)

    小米打印机能用其他相纸吗(小米打印机能用别的相片纸吗)

  • 苹果X怎么设置门禁卡(苹果x怎么设置呼叫转移其他号码)

    苹果X怎么设置门禁卡(苹果x怎么设置呼叫转移其他号码)

  • 手机打电话进来会响就是黑屏(手机打电话进来显示关机怎么回事)

    手机打电话进来会响就是黑屏(手机打电话进来显示关机怎么回事)

  • 路由器双频与单频区别(路由器双频与单频)

    路由器双频与单频区别(路由器双频与单频)

  • 电脑省电模式唤醒不了(电脑省电模式唤醒不起来)

    电脑省电模式唤醒不了(电脑省电模式唤醒不起来)

  • 苹果蓝牙耳机二代怎么辨别真假(苹果蓝牙耳机二代和三代的区别)

    苹果蓝牙耳机二代怎么辨别真假(苹果蓝牙耳机二代和三代的区别)

  • 华为手机流量限速怎么解除(华为手机流量限制了怎么办)

    华为手机流量限速怎么解除(华为手机流量限制了怎么办)

  • 微信解封辅助电话输错了怎么办(微信解封辅助电话)

    微信解封辅助电话输错了怎么办(微信解封辅助电话)

  • 纽扣电池没电了怎么办(纽扣电池没电了会漏液吗)

    纽扣电池没电了怎么办(纽扣电池没电了会漏液吗)

  • 虎牙直播需要什么条件(虎牙直播需要什么配置的电脑)

    虎牙直播需要什么条件(虎牙直播需要什么配置的电脑)

  • 微信提示被盗风险怎么解除(微信提示被盗风险怎么回事)

    微信提示被盗风险怎么解除(微信提示被盗风险怎么回事)

  • 赛扬t3500可以升级到什么cpu(赛扬t3000升级最高)

    赛扬t3500可以升级到什么cpu(赛扬t3000升级最高)

  • ctrl+j是什么快捷键(ctrl+j快捷键的作用)

    ctrl+j是什么快捷键(ctrl+j快捷键的作用)

  • 怎样把文字竖排居中(怎样把文字竖排居中对齐)

    怎样把文字竖排居中(怎样把文字竖排居中对齐)

  • 虎牙直播如何旋转屏幕(虎牙自动旋转)

    虎牙直播如何旋转屏幕(虎牙自动旋转)

  • 移动端网站建设有哪些特点(网站移动端开发需要哪些技术)

    移动端网站建设有哪些特点(网站移动端开发需要哪些技术)

  • 手机QQ浏览器怎么编辑文件(手机qq浏览器怎么缩小页面比例)

    手机QQ浏览器怎么编辑文件(手机qq浏览器怎么缩小页面比例)

  • 无法重设安全提示问题(无法重设安全提示怎么办)

    无法重设安全提示问题(无法重设安全提示怎么办)

  • 小米联网权限设置在哪里(小米联网权限设置)

    小米联网权限设置在哪里(小米联网权限设置)

  • 最高造价的苹果商店(最值钱的苹果)

    最高造价的苹果商店(最值钱的苹果)

  • 接受投资专利技术科目
  • 建筑企业外管证有效期
  • 使用党费要向哪里倾斜
  • 工会经费的工资薪金总额包括保险吗
  • 隔月发票可以作废吗?
  • 工伤保险可以税后支付吗
  • 成本费用包括哪些包括外购材料吗
  • 差旅费可以支取现金吗
  • 电子发票收款人和复核人可以是一个人吗
  • 未按规定安装使用税控装置
  • 年底分红如何计税
  • 超市收取的返利的税收处理
  • 编制会计报表利润表
  • 发票分割单可以抵扣吗
  • 红冲普通发票怎么开具
  • 对个体工商户个人的认识
  • 其他业务成本借贷方向表示
  • 以前年度损益调整属于哪类科目
  • linux CentOS/redhat 6.5 LVM分区使用详解
  • 如何在电脑管家里把健康小程序提取出
  • 建筑劳务公司一年挣多少钱
  • win11如何设置安装位置
  • 公司基本户可以异地开户吗
  • 由于找不到msvcr120.dll,无法继续执行代码什么意思
  • php获取指定日期是星期几
  • 大西洋,一望无际的海面
  • react router教程
  • yii gridview
  • vue引入文件路径@的意思
  • 销售自己使用过的固定资产
  • 深圳杯2020c题
  • ml神经网络
  • 低调低调
  • web前端开发 vue
  • php实现四种基础方式
  • php mkdir
  • tsar命令 收集服务器系统信息
  • 丧葬补贴金和抚恤金怎样领取
  • 劳务费个税扣税
  • 织梦如何给栏目增加缩略图
  • 投资者控股性质
  • 应收账款余额百分比法与账龄分析法有何异同
  • 运输发票抵扣税额怎么算
  • sql server 2008 r2数据库备份
  • 出售无形资产科目
  • 合伙企业可以列入法人吗
  • 暂估入库的账务处理含税吗
  • 银行 收美金
  • 已经发出的商品替换零部件进成本还是费用
  • 物业公司管理费用都有哪些科目
  • 银行存款支付投资者投入的款项54万
  • 业务招待费礼品要扣个税吗
  • 这个营业外支出怎么算
  • 人力资源公司的盈利模式
  • 工会经费计入科目
  • 农业机耕开发票税收分类编码是什么?
  • 购买食品应注意哪些问题?
  • mysql设计树形数据库
  • mysql 5.5 5.6
  • 开启 windows server
  • win8.1使用
  • 怎么在mac上看电视剧
  • vi编辑器使用教程
  • snmptrap.exe - snmptrap是什么进程 有什么作用
  • ubuntu系统怎么设置不锁屏
  • win7系统计算机名称在哪看
  • linux收发邮件
  • 如何更改win10管理员账户
  • Python+Wordpress制作小说站
  • django自定义模板标签
  • 怎么通过微信号查到对方的手机号码
  • 批处理forfiles
  • unity连接
  • jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
  • javascript高级教程pdf
  • jquery中的each方法
  • js面向对象是什么意思
  • 营改增之前建筑业税率是多少
  • 开电子发票流程步骤
  • 国家税务局网上浙江电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设