【发布时间】:2014-02-26 02:32:37
【问题描述】:
ADT is the set of operations. ADT's are mathematical abstractions.
这是否意味着 ADT 与类相同,还是我将两者混淆在一起?
【问题讨论】:
标签: c data-structures abstract-data-type
ADT is the set of operations. ADT's are mathematical abstractions.
这是否意味着 ADT 与类相同,还是我将两者混淆在一起?
【问题讨论】:
标签: c data-structures abstract-data-type
类是抽象数据类型 (ADT) 的实现。
【讨论】:
ADT 是通过提供最小的预期接口和方法集来对数据结构进行分类的方式
ADT's = 一组值 + 操作 示例堆栈、队列
【讨论】:
抽象数据类型 (ADT) 是对现实世界事物的数学抽象,可以用不同语言以具体数据类型实现。
ADT 定义给定类型的操作并以数学方式表达它们的行为。 ADT 的具体实现可能彼此不同。这样,类实现了 ADT,方法实现了操作。
类的术语与 ADT 略有不同,并添加了其他特征,例如:
和方法:
不要将抽象数据类型与具体语言中的抽象类混淆。
【讨论】:
根据 Code Complete,ADT 是数据和对这些数据进行操作的集合。
ADT 示例:
列表
ADT 构成了类概念的基础。在支持类的语言中,您可以将每个抽象数据类型实现为它自己的类。 类通常涉及继承和多态的附加概念。将类视为抽象数据类型加上继承和多态的一种方式。
【讨论】:
区别的关键在于抽象。把 ADT 想象成一个接口——一个只有方法声明的类,没有实现细节。
例如,Stack ADT 定义了基本的堆栈操作,例如 push 和 pop(但没有说明这些操作应该如何实现),而 Stack 类将使用链表或数组来实际实现这些操作操作。
【讨论】: