数据类型与抽象数据类型

数据类型

数据类型是一个值的集合,以及定义在这个集合上的一组操作的总称。

  • 原子类型:值不可再分的数据类型,例如 boolint
  • 结构类型:值可以再分解为若干分量的数据类型,例如结构体。

数据类型不仅包含“能取哪些值”,还包含“能做哪些操作”。例如 int 不只是整数范围,还包括加、减、乘、除、取模等操作。

抽象数据类型

抽象数据类型(ADT)是抽象的数据组织及与之相关的一组操作。ADT 用数学化语言定义数据的逻辑结构和运算,与具体存储实现无关。

与数据结构的关系

定义一个 ADT,本质上是在定义一种数据结构的逻辑结构和运算;选择存储结构后,才能实现这种数据结构。比如“线性表”作为 ADT 可以规定插入、删除、查找等操作,而它可以用 顺序表或链表 实现。

ADT 强调抽象与实现解耦