版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
表
由于元素 数据结构和算法(Python语言版):线性表 数据结构和算法(Python语言版):线性表 实 把表元素分 在结点里
建 C等基本编程语言里,这方面的技术细节很多,用起来也比较麻在Python等编程语言里,对这类技术的支持非常全面。我们可以 域域在单链表里,与表里的n个元素对应的n个结点通过 数据结构和算法(Python语言版):
数据结构和算法(Python语言版):
对象标识的值(Python里自然应该用None),称为空 ^数据结构和算法(Python语言版):^
数据结构和算法(Python语言版):线性表 考 在一些语言(C语言)所有结点。Python程序 比
首端加入:1)创建一个新结点存入数据;2)把原链表首结点的 域;3)修改表头变量使之 数据结构和算法(Python语言版):
数据结构和算法(Python语言版):
尾端加入:1)创建一个新结点存入数据;2)表空时直接让表头变量引用这个新结点并结束,否则找到表尾结点;3)令表尾结点的域引用这一新结点,并将新结点的域设置为空^
^^定位加入:1)找到新结点加入位置的前一结点,不存在时结束;2)创建新结点存入数据;3)修改前一结点和新结点的 数据结构和算法(Python语言版):线性表 数据结构和算法(Python语言版):线性表
加入元素(T(分配的时间 其他删除通常需要扫描整个表或其一部分,O(n)数据结构和算法(Python语言版):
数据结构和算法(Python语言版):
))^^ 数据结构和算法(Python语言版):线性表
实 classLNodedefinit(self,elm,nxt):self.elem=elmself.next=nxt简单的使用代码(Python允许直 llist1=LNode(1,None);pnode=llist1foriinrange(2,11):pnode.next=LNode(i,None)pnode=pnode.nextpnode=whilepnodeisnotNone:pnode=pnode.next数据结构和算法(Python语言版):线性表 我们希望基于结点LNode定义一 classdefinit(self):defreturnself.head==defprepend(self,self.head=LNode(elem,LListhead域,指向表中的首结点。几个操作(方法prepend在表首端加入一个包含新元素的(新)
defappend(self,elem):ifself.head==self.head=LNode(elem,None)p=whilep.next!=p=p.next=LNode(elem, 复杂性 数据结构和算法(Python语言版):
数据结构和算法(Python语言版):
defpop(self)ifself.head==raiseValueErrore=self.head.elemself.head=returndefpo ifself.head==None:#emptylistraiseValueErrorp=self.headifp.next==None:#listwithonlyonee=p.elem;self.head=Nonereturnewhilep.next.next!=None:#tillp.nextbethelastnodep=p.nexte=p.next.elem;p.next= return 数据结构和算法(Python语言版):线性表
deffind(selfpredpredp=whilep!=ifpred(p.elem):returnp.elemp=p.nextreturndefprintall(self)p=self.headwhilep!=None:p=p.next请查看基本类型list的操作,想想如何为这个 数据结构和算法(Python语言版):线性表 mlist1=foriinrange(10):foriinrange(11,20):10个元素(整数9个元素(整数
^数据结构和算法(Python语言版):
数据结构和算法(Python语言版):
#方法定义和其他LNodeLListobject作为基类
带尾结 LList1LListLListclassdefinitLList.init(selfLListself.rear=defprepend(self,self.head=LNode(elem,ifself.rear==None:#theemptyself.rear=self.head#rearpointsalsotothenewdefappend(self,elem):ifself.head==self.prepend(elem)#callprepend,dotheself.rear.next=LNode(elem,None)self.rear=self.rear.next数据结构和算法(Python语言版):线性表 数据结构和算法(Python语言版):线性表 带尾结 defifself.headisraisee=ifself.rea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度电影项目投资与众筹平台服务合同3篇
- 2024年度三方询价采购合同-智能仓储物流系统采购3篇
- 2024年度苹果交易协议3篇
- 2024女方离婚协议书起草指南与婚姻解除后的财产分割与子女抚养3篇
- 2024年施工安全责任协议书编制指南3篇
- 2024年度船舶抵押租赁管理合同3篇
- 2024年新型建筑工程标准合同模板
- 2024版厂房拆迁补偿及配套设施建设协议范本3篇
- 2024年度导游人员应急处理聘用合同3篇
- 2024企业招聘会组织协议2篇
- GB/T 30002-2024儿童牙刷通用技术要求
- 动画制作员(高级工)技能鉴定理论考试题库(含答案)
- 2024年婴幼儿发展引导员(高级)职业技能鉴定考试题库(含答案)
- 水利工程档案管理实施细则
- 中日标准件对照表
- (完整版)密闭式静脉输液技术操作评分标准
- 《贲门失弛缓症》PPT课件课件
- 汽车连杆加工工艺规程及夹具设计毕业论文 (1)
- 外研版小学英语(三起)五年级下册单词表(含音标)
- 小化肥生产原理及过程
- 安全工作总结PPT
评论
0/150
提交评论