定义:抽象数据型(ADT)是一个数据类型,其数据对象和对象上操作的规格说明独立于对象的储存表示和对象上的操作的实现。
有些程序设计语言提供了把规格说明与其实现区分开的显示机制。例如,Ada有称为包(package)的概念,而C++中有称为类(Class)的概念。这两个概念都有助于程序员实现抽象数据类型。虽然C语言没有提供显示的机制来实现ADT,但是可以利用抽象数据型的概念来设计新的数据类型。
抽象数据型上操作的规格说明与操作实现存在怎样的区别呢?操作的规格说明由各个函数的名称,每个函数的参数类型以及返回的结果类型构成。还应该包括函数的功能描述,但不涉及函数的机内存储表示或实现细节。这个要求是很重要的,它表明抽象数据型是独立于实现的。另外,可以把数据类型中的函数分为几种类型:
(1)生成器/构造器:这些函数将创建一个指定数据类型的实例。
(2)转换器:这些函数也创建一个指定类型的实例,但通常是要使用一个或多个其他实例。构造器和转换器之间的区别用一些实例类说明将会更加清楚。
(3)观察器/报告器:这些函数提供某种类型的实例信息,但并不改变改实例。通常情况下,一个抽象数据型的定义,至少包括上述三种类型函数中的一个。