1.2.2 数据类型和抽象数据类型
- 在使用高级程序设计语言编写程序时,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。
- 一些基本数据结构可以用数据类型来实现,如数组、字符串等
- 而另一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型来表示。
- 高级语言中的数据类型明显地或隐含地规定了在程序执行期间变量和表达的所有可能取值范围,以及在这些数值范围上所允许进行的操作。
- 数据类型的作用:
- 约束变量或常量的取值范围
- 约束变量或常量的操作
- 数据类型的作用:
数据类型(Data Type)
- 定义:数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。
- 数据类型=值的集合+值集合上的一组操作。
抽象数据类型(Abstract Data Type,ADT)
是指一个数学模型以及定义在此数学模型上的一组操作。
- 由用户定义,从问题抽象出的数据模型(逻辑结构)
- 还包括定义在数据模型上的一组抽象运算(相关操作)
- 不考虑计算机内的具体存储结构与运算的具体实现算法
抽象数据类型的形式定义
抽象数据类型可用(D,S,P)三元组表示。
其中:D是数据对象
S是D上的关系集
P是对D的基本操作集
一个抽象数据类型的定义格式如下:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
其中:
- 数据对象、数据关系的定义用伪代码描述。
- 基本操作的定义格式为:
- 基本操作名(参数表)
- 初始条件:<初始条件描述>
- 操作结果:<操作结果描述>
基本操作顶格式说明:
参数表:赋值参数 只为操作提供输入值。
引用参数 以&打头,除可提供输入值外,还将返回操作结果。
初始条件:描述操作执行之前数据结构和参数应满足的条件,如不满足,则操作失败,并返回相应出错信息。若初始条件为空,则省略之。
操作结果:说明操作正常完成之后,数据结构的变化状况和应返回的结果。
ADT定义举例:Circle的定义
ADT Circle{
数据对象:D={r,x,y|r,x,y均为实数}
数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}
基本操作:
Circle(&C,r,x,y)
操作结果:构造一个圆
double Area(C)
初始条件:圆已存在
操作结果:计算面积
double Circumference(C)
初始条件:圆已存在
操作结果:计算周长
}ADT Circle
标签:ADT,定义,1.2,数据类型,抽象数据类型,操作,基本操作
From: https://www.cnblogs.com/wangjunxiang/p/17151720.html