- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第3节抽象数据类型(1课时)
第4章树
浙教版(2019)选修一
PART01
数据类型与抽象数据类型
新课导入
抽象?
抽象是指抽取出事物具有的普遍性本质,是对具体事物的一个概括。
抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必需的信息。
姓名
班级
学籍
排名
新课导入
数据类型
基本数据类型由计算机编程环境提供,编程者可以在编程时直接用系统提供的标识符进行定义,如Python编程语言中的整型、实型、布尔型等。
新课导入
象
sum()
tan()
print()
average()
len()
sin()
抽
类
型
据
数
一
1
概念
抽象数据类型:(AbstractDataType,简称ADT)是指一个数学模型及定义在该模型上的一组操作。
ADT的基本思想是抽象,它的定义仅取决于它的一组逻辑特性,把数据结构及其操作作为一个整体来研究,而与其在计算机内部如何
表示和实现无关。
一
Python的字符串类型(str)就是一个抽象数据类型,在字符串对象的内部提供了一组操作可供编程者使用,每个操作都有明确的抽象意义,编程者不必受制于操作内部的具体实现技术,在程序设计时可以直接使用。
字符串抽象数据类型的内部表现
一
象
sum()
tan()
print()
average()
abs()
sin()
抽
类
型
据
数
一
跑动
跳跃
下蹲
在设计某互动媒体中的一个角色对象时,设计者可以对其定义几种基本操作,如跑动、跳跃等;一个角色对象到底需要哪些操作,只能由设计者根据实际需要来确定,如为角色对象增加下蹲等操作。
二
描述
定义一个抽象数据类型,需要清晰地表述出各方面的形式要求(操作的名字、参数的个数和类型等)和功能要求(希望这个操作完成什么样的计算或产生什么效果等)。
当然,还需要为这一抽象数据类型确定一个类型名。
描述抽象数据类型的标准格式
二
2
4
5
3
1
如何为创建操作提供初始元素序列;
检查线性表中是否存在某个特定数据对象;
改变线性表中的内容,包括加入新元素或删除已有元素等;
实现一个或两个表的操作,包括表的组合操作等;
实现对线性表中的每一个元素的操作,即对表元素的遍历。
在前三章有关线性表数据结构的学习中,已经知道了线性表数据结构会涉及的一些操作。
二
线性表抽象数据类型
ADTList:
List(self)
is_empty(self)
len(self)
prepend(self,elem)
append(self,elem)
insert(self,elem,i)
del_first(self)
del_last(self)
del(self,i)
search(self,elem)
forall(self,op)
#创建一个新表
#判断self是否为一个空表
#返回表的长度
#在表头插入元素elem
#在表尾插入元素elem
#在表的第i个位置插入元素elem
#删除第一个元素
#删除最后一个元素
#删除第1个元素
#查找元素elem在表中第一次出现的位置
#对表中的每个元素执行op操作
二
1.如何定义一个矩形抽象数据类型?
ADTjx:
chang;#长度数据
kuan;#宽度数据
zc(self)#求矩形的周长
mj(self)#求矩形的面积
ADT抽象数据类型名:
Data
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
……
操作n
……
endADT
二
抽象数据类型(链表节点)
##定义一个链表节点的抽象类
classNode():
#初始化链表节点为空
def__init__(self,value,next=None):
self._value=value
self._next=next
#取当前节点的数值
defgetValue(self):
returnself._value
ADT类型:class
抽象数据类型名:Node
初始化条件:__init__函数
操作:getValue函数
二
列表,字符串,队列,树等都是抽象数据类型。
列表:
ADTList:
List(self)
is_empty(self
您可能关注的文档
- 古诗词诵读2《涉江采芙蓉》复习课件-统编版高一语文必修上册.pptx
- 《荷塘月色 》课件 统编版高中语文必修上册.pptx
- 第17课 挽救民族危亡的斗争 课件-高一上学期统编版(2019)必修中外历史纲要上.pptx
- 《“探界者”钟扬》高一语文课件(统编版必修上册).pptx
- 第四章 树(复习课件)高中信息技术选修1数据与数据结构(浙教版2019).pptx
- 12祝福第一课时(课件)统编版高中语文必修下册.pptx
- 14.2《荷塘月色》课件 统编版高中语文必修上册(2).pptx
- 第18课 辛亥革命 课件-高一上学期统编版(2019)必修中外历史纲要上.pptx
- 第12课 从明朝建立到清军入关 课件 高一上学期统编版(2019)必修中外历史纲要上.pptx
- 第18课 世界主要国家的基层治理与社会保障 课件-高二历史上学期历史统编版(2019)选择性必修1国家制度与社会治理.pptx
文档评论(0)