抽象数据类型(Abstract Data Type, ADT)
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。ADT 通过将数据的逻辑结构与其在计算机内部的物理存储分离,实现了数据抽象与信息隐藏。
核心概念
ADT 的定义仅取决于它的逻辑特性,与其在计算机内部的表示和实现无关。一个 ADT 通常包含三部分:
- 数据对象:数据元素的集合
- 数据关系:数据元素之间的逻辑结构
- 基本操作:定义在该数据结构上的一组运算
数据抽象与封装
ADT 的核心思想是将数据的表示和操作的具体实现封装起来,对外只暴露接口。使用者只需要关注”做什么”(即操作的功能),而不需要关注”怎么做”(即实现细节)。这种分离机制使得:
- 程序的维护性和可读性提高
- 实现的变更不会影响使用该 ADT 的代码
- 模块化程度更高,便于团队协作和代码复用
表示形式
在数据结构的学习中,ADT 常用以下形式描述:
ADT 抽象数据类型名 {
数据对象: D = { ... }
数据关系: R = { ... }
基本操作:
操作名1(参数表)
初始条件: ...
操作结果: ...
操作名2(参数表)
...
} ADT 抽象数据类型名
例如,栈的 ADT 定义包含 InitStack、Push、Pop、StackEmpty 等操作,它们只描述功能语义,而不规定底层是用数组还是链表实现。
与具体数据结构的区别
抽象数据类型是逻辑层面的概念,而具体的数据结构(如顺序栈、链栈)是 ADT 在计算机中的实现。同一个 ADT 可以有多种不同的实现方式,只要满足接口规范即可。
链接到
- 上一个知识点:无(本章第一个知识点)
- 下一个知识点:1.2 逻辑结构与存储结构