数据类型(Data Type)
使用高级语言时,必须对每个变量、常量或表达式,明确所属的数据类型。
在C语言中,一些基本数据结构可以用数据类型来实现,如数组、字符串等。
而另外一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型来表示。
定义:数据类型是一组性质相同(取值范围相同)的值的集合以及定义这个值集合上的一组操作的总称。
抽象数据类型(Abstract Data Type,ADT)
是由用户定义,从问题抽象出数据模型(逻辑结构)
还包括定义在数据模型上的一组抽象运算(相关操作)
不考虑计算机内的具体存储结构与运算的具体实现算法
抽象数据类型的形式定义
抽象数据类型可用(D,S,P)三元组表示。
D是数据对象;
S是D上的关系集;
P是对象D的基本操作集。
抽象数据类型定义格式:
ADT 抽象数据类型名
{数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
抽象数据类型的表示与实现
用C语言实现抽象数据类型
用已有的数据类型定义描述它的存储结构
用函数定义描述它的操作
接下来的文章,我们用类C语言(介于伪码和C语言之间)作为描述工具(上机时要用具体的语言实现,如C或C++等)。
使用C语言定义一个抽象数据类型:
typedef struct
{
float realpart;//实部
float imagpart;//虚部
}Complex //复数抽象类型
void assign(Complex *A,float real, float imag)
{
A-> realpart = real;
A->imagpart = imag;
}
void add(Clmplex *c,Clmplex A,Clmplex B)
{
c->realpart = A.realpart + B.realpart;
c->imagpart = A.imagpart + B.imagpart;
}