1.4.1 什么是抽象数据类型

抽象数据类型(abstract data type,ADT)是描述具有某种逻辑关系的数学模型,以及对在该数学模型上进行的一组操作。这个抽象数据类型有点类似于Python中的类,例如,Python中的list类定义了一些常用方法和属性,如append(x)、insert(index,x)、count(x)等,它们的区别在于,抽象数据类型描述的是一组逻辑上的特性,与在计算机内部如何表示无关;Python中的类是依赖具体实现的,是抽象数据类型的具体化表现形式。

抽象数据类型不仅包括在计算机中已经定义了的数据类型,例如数字类型、字符串、列表、元组等,还包括用户自己定义的数据类型。

一个抽象数据类型定义了一个数据对象、数据对象中数据元素之间的关系及对数据元素的操作。抽象数据类型通常是指用来解决应用问题的数据模型,包括数据的定义和操作。

抽象数据类型体现了程序设计中的问题分解、抽象和信息隐藏特性。抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立起一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐藏起来。这就类似人们日常生活中盖房子,把盖房子分成若干个小任务:地皮审批、图纸设计、施工、装修等,工程管理人员负责地皮的审批,地皮审批下来之后,工程技术人员根据用户需求设计图纸,建筑工人根据设计好的图纸进行施工(包括打地基、砌墙、安装门窗等),盖好房子后请装修工人装修。