目录

什么是 ADT(Abstract Data Type)?

什么是 Array ADT?

Array ADT 提供的抽象操作(逻辑接口)

Array ADT 的抽象特征


什么是 ADT(Abstract Data Type)?

抽象数据类型(ADT)是一种对数据及其操作的逻辑建模,它描述“是什么”和“能做什么”,而不关心“怎么实现的”。

举个例子(类比):

抽象数据类型就像是“遥控器的功能说明书”:

  • 你知道遥控器能干嘛:开机、换台、调音量

  • 但你不需要知道里面电路怎么接的、电流怎么走的

ADT 的核心特征

特征 说明
数据结构抽象化 它只关心“操作行为”,不关心“具体实现”
操作明确 ADT 明确规定了可以对数据执行哪些操作
与实现无关 你可以用链表、数组、树去实现它,但用户不需要知道
便于封装和重用 是面向对象思想的重要基础

ADT vs 数据结构 vs 数据类型

名称 定义 举例
数据类型(Data Type) 基本单位类型 int, char, float
抽象数据类型(ADT) 描述数据行为的逻辑模型 Stack, Queue, Map
数据结构 ADT 的具体实现方式 栈可以用数组、链表、双端数组来实现

什么是 Array ADT?

Array ADT(数组抽象数据类型) 是一种逻辑上的线性数据模型,它描述了“数组是什么”和“可以对它做什么”,而不是它如何被实现。

Array ADT 提供的抽象操作(逻辑接口)

操作 描述
get(i) 读取索引为 i 的元素
set(i, value) 将第 i 个位置的值设置为 value
length() 返回数组的长度
search(value) 查找值为 value 的位置
insert(i, value) 在位置 i 插入一个值(需要移位)
delete(i) 删除位置 i 上的元素(需要移位)

注意:

  • 这些操作都是 抽象定义,它们只是说明:“数组要能完成这些功能”

  • 具体实现可以变化(如静态数组、动态数组、稀疏数组等)

 

Array ADT 的抽象特征

特征 描述
顺序存储 元素按固定顺序排列,每个元素有一个索引(逻辑上)
随机访问 通过下标 i 可以常数时间访问任何元素
不可变长度 原始数组 ADT 通常是定长的(动态数组是扩展)
插入/删除效率低 插入/删除时需要移动元素(O(n))
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐