抽象和原始数据类型(ADT)

时间:2015-09-26 17:51:35

标签: algorithm data-structures programming-languages adt abstract-data-type

我知道这个问题已被问了一百万次但有人可以向我解释一下ADT究竟意味着什么(如果可能的话,在外行人的条件下)?

我读过ADT的这个定义 - ADT只提到了要执行的操作,而不是如何实现这些操作。 原始数据类型的情况也是如此。

假设我们有浮点数据类型,我们知道可以执行乘法,除法等操作(所以我们知道将执行哪些操作)但我们不知道如何它将被执行(在乘法的情况下,我们可以乘法或重复加法,因此我们有两个过程给出相同的结果,因此它是抽象的)。因此两种数据类型基本相同。 (我知道这不正确)。

我知道我弄错了。有人可以帮我清除这个概念吗?

3 个答案:

答案 0 :(得分:4)

数据类型是任何编程语言的数据分类 - 例如整数,字符,浮点数等。

摘要数据类型是一个理论概念。抽象数据类型(ADT)是数据类型的数学模型,其中数据类型由其行为(语义)从数据用户的角度定义,特别是在可能的值,可能的数据操作方面。此类型以及这些操作的行为。一组数据值和相关操作,它们是精确指定的,与任何特定实现无关。抽象数据类型(ADT)是一组数据的规范和可以对数据执行的操作集。

例如:Stack是一种抽象数据类型。堆栈ADT可以具有操作push,pop,peek。这三个操作定义了类型的类型,而不管实现的语言如何。

所以我们可以说,Primitive数据类型是Abstract数据类型的一种形式。它只是由语言制定者提供,并且非常特定于语言。所以基本上有两种类型的数据类型基元和用户定义。但它们都是抽象数据类型。我希望这说清楚。

答案 1 :(得分:0)

抽象数据类型 - 这些是用于操作数据的构建块,否则它们只是1和0的字符串。你想用液态金属或螺母和螺栓来构建吗?

答案 2 :(得分:0)

这个问题很快被问到了,但我的回答可能会更清楚一些。

数据类型 - 处理一组值,它们的表示以及可应用于它们的一组操作。

抽象数据类型(ADT) - 处理一组值和一组可以对它们执行的操作。

两者之间的区别在于ADT并不关心这些值的表示。