版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
表
由于元素 数据结构和算法(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英文赞助合同范本
- 水库水能计算课程设计
- 2024年光纤到户项目线路安装合同
- 山东省济南市平阴县2023-2024学年八年级上学期期末数学试题(原卷版)
- 课程设计黄河大合唱
- 课程设计温控小风扇设计
- 进行曲课程设计
- 配电施工课程设计
- 识字游戏大班课程设计
- 美丽乡村小学生课程设计
- 广东省东莞市多校2024-2025学年三年级上学期第二次月考数学试卷
- 第11课 多彩风车园(教案)三年级上册信息技术粤教版B版
- 国家知识产权局专利局专利审查协作2024年中心度公开招考专利审查员高频500题难、易错点模拟试题附带答案详解
- 2024秋初中化学九年级上册教学设计(教案)跨学科实践活动5
- 2024年新教科版八年级上册物理课件 第6章 质量与密度 4.跨学科实践:密度应用交流会
- 湘潭、成都工厂VDA63-2023审核员培训考核附有答案
- 2025届广西桂林十八中高三(最后冲刺)物理试卷含解析
- 五年级语文上册第四单元综合素质评价(北京版)作业
- 广东省东莞市2023-2024年七年级上学期语文期中考试试卷(含答案)
- Unit 6 Is he your grandpa?第一课时(教学设计+素材)-2023-2024学年译林版(三起)(2024)英语三年级上册
- 1例脑梗死恢复期患者循证护理个案分享
评论
0/150
提交评论