数据结构:数组抽象数据类型(Array ADT)

目录

什么是 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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值