2026/10/23 12:59:32
网站建设
项目流程
1.5数据类型定义和作用 数据类型是一个值的集合 和定义在这个值集上的一组操作 的总称。 (数据类型=值的集合+值集合上的一组操作。) 一些最基本数据结构可用数据类型来实现,如数组、字符串等; 栈、队列、树、图等不能直接用数据类型来表示。 例如C语言中: (1)提供int、char、float、double等基本数据类型。 (2)数组、结构、共用体、枚举等构造数据类型。 (3)指针、空(void)类型。 (4)用户可用typedef自己定义数据类型。 数据类型的作用 (1)约束变量或常量的取值范围 (2)约束变量或常量的操作 1.6抽象数据类型(Abstract Data Type,简称ADT) 指一个数学模型以及定义在此数学模型上的一组操作。 形式定义:抽象数据类型可用(D,S,P)三元组表示。 (D是数据对象,S是D上的关系集,P是D上的基本操作集) 抽象数据类型的定义格式: ADT 抽象数据类型名{ 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本操作:<基本操作的定义> }ADT 抽象数据类型名 (1)数据对象、数据关系的定义用伪代码描述 (2)基本操作的定义格式为: 基本操作名(参数表) 初始条件 操作结果 ①参数表:赋值参数,只为操作提供输入值,引用参数用&打头,可提供输入值且可返回操作结果。 ②初始条件:描述操作执行之前数据结构和参数应满足的条件。 ③操作结果:操作正常完成后,数据结构的变化状况和应返回的结果。 例1:(ADT定义举例:Circle的定义) ADT Circle{ 数据对象:D={r,x,y|r,x,y均为实数} 数据关系:S={<r,x,y>|r是半径,<x,y>是圆心} 基本操作: Circle(&C,r,x,y) 操作结果:构造一个圆。 double Area(C) 初始条件:圆已存在。 操作结果:计算面积。 double Circumference(C) 初始条件:圆已存在。 操作结果:计算周长。 ......}ADT Circle例2:(ADT定义举例:复数的定义) ADT Complex{ D={r1,r2|r1,r2都是实数} S={<r1,r2>|r1是实部,r2是虚部} assign(&C,v1,v2) 初始条件:空的复数C已存在。 操作结果:构造复数C,用v1,v2赋值。 GetReal(C,&realPart) 初始条件:复数C已存在。 操作结果:返回复数C的实部。 GetImag(C,&ImagPart) 初始条件:复数C已存在。 操作结果:返回复数C的虚部。 destory(&C) 初始条件:复数C已存在。 操作结果:复数C被销毁。 ......}ADT Complex