ADT和类之间的区别?

时间:2014-02-02 16:48:35

标签: c data-structures abstract-data-type

ADT is the set of operations. ADT's are mathematical abstractions.

这是否意味着ADT与班级相同,或者我是否将两者混淆在一起?

5 个答案:

答案 0 :(得分:9)

差异的关键是抽象。可以把ADT想象成一个接口 - 一个只有方法声明的类,没有实现细节。

作为示例,Stack ADT定义了基本的堆栈操作,如push和pop(但没有说明应该如何实现这些操作),而Stack类将使用链接列表或数组来实际实现这些操作操作

答案 1 :(得分:3)

抽象数据类型(ADT)是现实世界的数学抽象,可以用不同语言的具体数据类型实现。

ADT定义给定类型的操作,并以数学方式表达它们的行为。 ADT的具体实现可以彼此不同。这样,类就实现了ADT,方法实现了操作。

类的术语与ADT略有不同,并添加其他特征,例如:

  • 例如,他们可能住在
  • 他们的成员称为属性方法
  • 属性和方法具有某种可见性约束

方法:

  • 也可以是抽象。但是,他们的行为没有定义 - 只有他们的方法签名 - 一个继承的具体类必须提供一个实现

不要将抽象数据类型与具体语言中的抽象类混淆。

答案 2 :(得分:0)

根据Code Complete,ADT是处理该数据的数据和操作的集合。

ADT示例:

列表

  • 初始化列表
  • 在列表中插入项目
  • 从列表中删除项目
  • 从列表中读取下一项

ADT构成了类概念的基础。在支持类的语言中,您可以将每个抽象数据类型实现为自己的类。 通常涉及继承和多态的其他概念。思考类的一种方法是作为抽象数据类型加上继承和多态。

答案 3 :(得分:0)

类是抽象数据类型 (ADT) 的实现。

答案 4 :(得分:-1)

ADT 是通过提供最小的预期接口和方法集来对数据结构进行分类的方式

ADT = 值集 + 操作 示例堆栈、队列