




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.2链表链表类水果类类是现实世界或思维世界中的实体在计算机中的反映,用来描述具有相同的属性和方法的对象的集合,它定义了每个对象所共有的属性和方法。在Python中,对象用类创建。类被称为类对象,类的实例被称为类的对象。创建一个新类意味着创建一个新类型的对象,从而允许创建一个该类型的对象实例。每个类的实例可以拥有保存自己状态的属性和改变自己状态的、定义在类中的方法。类和实例举例:新建一个类对象“蔬菜”,里面可以有“白菜”、“青菜”、“西红柿”这些对象。类的定义Python使用class关键字来定义类,其语法格式如下:类是抽象的,要使用类定义的功能,就必须进行类的实例化,即创建类的对象,其语法格式为:对象名=类名(参数列表)。类中的属性①类的数据成员是在类中定义的成员变量,用来存储描述类的状态特征的值,也称为属性。属性可以被该类中定义的方法访问,也可以通过类的对象进行访问。②通过“self.变量名”定义的属性,称为类的对象属性,属于类实例化的特定对象。对象属性在类的内部通过“self.变量名”访问,在外部通过“对象名.变量名”来访问。
③类属性属于整个类,是在类中所有方法之外定义的变量,所有实例之间共享一个副本。类属性在类的内部通过“类名.类属性名”或“self.类属性名”访问,在外部可以通过类对象和实例对象访问公有的类属性,但不能访问私有的类属性。类的对象方法①类的对象方法对类的某个实例化对象进行操作,一般以self作为其第一个形式参数(也可以使用其他名字)。声明对象方法的语法格式如下:方法的调用格式为:对象名.方法名([实参列表])。②注意:虽然对象方法的第一个参数是self,但是在调用时,用户不需要也不能给该参数传递值,Python会自动地把对象传递给self参数。(拓展选学)链表类在python中没有指针,不能直接进行链表操作,但是python面向对象编程可以定义一个链表类来进行链表操作。在类中设定链表和节点的属性、方法,在后续的程序中可以直接运用。(1)单向链表的类定义通常使用两个类来协调表示单向链表,即单向链表的节点类(LinkNode)和单向链表类(LinkList)。先定义单向链表的节点类,代码如下:#定义节点类LinkNode#初始化节点包含两个区域self.data、self.next#self.data区域保存数据#self.next区域保存指针再定义单向链表类,代码如下:(2)单向链表节点的访问链表节点只能通过头指针(head)进行访问,其他节点通过节点间的指针依次访问。可以设计类的魔术方法__str__(),当使用print()函数输出类对象的值时,会自动调用__str__()方法,依次输出链表的所有节点,代码如下:(3)单向链表节点的插入在链表中插入新节点时,无需移动链表中的元素,只要修改链表中节点指针域的值,就能高效地实现插入操作。在单向链表插入新节点可能会出现三种情况,从表头插入、从中间插入或追加在表尾。①当从表头插入时,可以设计类的方法prepend(),代码如下:②当从表尾插入时,可以设计类的方法append(),代码如下:③当从表中间插入时,可以设计类的方法insert(),代码如下:(4)单向链表节点的删除单向链表中元素的删除比较简单。若要删除节点号为index的节点,则只需找到其前驱节点,修改前驱节点的next指针指向其后继节点。当index越界时删除尾节点;若删除了头节点,则需要修改头指针。可以设计类的方法pop(),代码如下:练一练1.已知学生类的定义如下:Classstudent:def_init_(self,name,age_=18,sex_=“女”):=nameself.age=age_self.sex=sex_def_str_(self):returnf”姓名:{},年龄:{self.age},性别:{self.sex}”下列代码段定义了一个学生类的实例a,并输出其值:a=student(”王丽”,”16”)print(a)则执行该段程序后,程序输出的值为:A.姓名:王丽,年龄:16,性别:B.姓名:王丽,年龄:18,性别:女C.姓名:王丽,年龄:16,性别:女D.姓名:王丽,年龄:18,性别:女C2.已知单向链表类的定义如下:classlinklist:def_init_(self):self.head=None则不带头节点的单向链表a为空的判定条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 35624-2025应急避难场所通用技术要求
- 停车场资产转让及管理合同
- 个人租赁合同之三:设备租赁条款解析
- 度投资合伙人合同协议
- 影视器材采购合同
- 债权债务转让合同范本
- Module 6 Unit 2 She visited the Tianchi Lake(教学设计)-2023-2024学年外研版(三起)英语五年级下册
- 标准民间借款抵押合同
- 极速建站代理合作合同书
- 健身房经营权转让合同
- 优质护理与人文关怀课件
- 溶剂油MSDS危险化学品安全技术说明书
- 马工程西方经济学(第二版)教学课件-2
- 慢阻肺的慢病管理课件
- (中职)化学分析技术项目一 走进化学分析实验室教学课件
- 探放水工培训教材
- 某县某年度高标准基本农田建设项目复核报告
- 秘书实务完整版课件全套ppt教程
- 酒店电子商务全套课件
- 质量体系的职能架构
- 《旅游经济学》全书PPT课件
评论
0/150
提交评论