内容正文:
X
☆
女
4.3抽象数据类型
01890
8
000
0000
0000
000
0000
000
数据类型
数据类型指的是具有相同性质的计算机数据的集合及在这个数据集合
上的一组操作。
1.基本数据类型
整型、实型、
布尔型、
列表、字符串、字典
2.结构数据类型
抽象数据类型(类)
a=13
#语句1
b=10
#语句2
整型变量
c=a+b
#语句3
print(c)
女X
抽象数据类型
抽象数据类型:(Abstract Data Type,简称ADT)是指一个数学模型
及定义在该模型上的一组操作。
ADT的基本思想是抽象,它的定义仅取决于它的一组逻辑特性,把数
据结构及其操作作为一个整体来研究,而与其在计算机内部如何表示
和实现无关。
insert()
pop()
len()
append()
女X
抽象数据类型
例如:
在王者荣耀中,游戏人物
人物外貌:形
的设定,一般都用抽象数据类
象,衣服等
型来定义人物对象
。
因为所有的人物都符合几个
人物特征
人物皮肤
特征:人物形象
人物的符文
人物符文
人物的移动
人物有三个技能和被动
法师甄姬
人物的移动:左右,上
人物施放技能
下,闪现,有无鞋子等
人物技能的伤害量
人物施放技能:动画,
伤害量等
☒
抽象数据类型
.抽象数据类型的标准格式:
ADT抽象数据类型名:
Data
数据元素之间逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
操作n
endADT
女X
抽象数据类型
抽象数据类型除了那些已经定义并实现的数据类型,还可以是
编程者在程序设计时使用的函数或者单独定义的数据类型等。
如使用Python的内建函数时,编程者只需考虑函数的功能是否满
足实际需要,再确保函数调用时的表达式是否符合函数构造的要
求,就可以使用此函数,而不需要知道该函数内部实现的任何具
体细节。
女X
抽象数据类型
下面呈现的是一个简单的线性表抽象数据类型,其中定义了一组最基本的操作。
ADT List:
List(self)
#创建一个新表
is empty(self)
#判断self是否为一个空表
len(self)
#返回表的长度
prepend(self,elem)
#在表头插入元素elem
append(self,elem)
#在表尾插入元素elem
insert(self,elem,i)
#在表的第i个位置插入元素elem
del first(self)
#删除第一个元素
del last(self)
#删除最后一个元素
del(self,i)
#删除第个元素
search(self,elem)
#查找元素elem在表中第一次出现的位置
forall(self,op)
#对表中的每个元素执行op操作
抽象数据类型__
·抽象数据类型(链表节点)_
##定义一个链表节点的抽象类
#初始化链表节点为空ADT类型:class
def_init_(self,value,next=None):
抽象数据类型名:Node
self.value=value
self。_next=next
初始化条件:_init_函数
#取当前节点的数值
def getValue(self):操作:getValue函数
return self,value
抽象数据类型__
·抽象数据类型
列表,字符串,队列,树等都是抽象数据类型.
列表: _心符串: __[p人列: __
ADT List:ADT Queue:
List( self) String( self, sseq)Queue( self)
is_empty( self) is_empty( self) is_empty( self)
len( self Ien( self enqueue( self, elem)
append( self, elem) _char( self, index) dequeue( self)
instert( self, elem, i) Substr( self, a, b) peek( self)
del( self, i) match( self, string)
抽象数据类型的作用
抽象数据类型的作用
1.程序结构清晰、层次分明,便于程序正确性的证明和复杂性
的分析。
2.因为模块化的特点,便于改正错误的代码,利于维护系统。
3.抽象数据类型的表示和实现利于封装,便于代码的移植和重
用。
4.使得算法设计和数据结构设计分开,降低了程序的复杂性,
利于编写代码实现的可靠性。
5.使得数据结构可自由选择,给了算法的优化空间,提高了程
序运行的效率。
女☒