【发布时间】:2015-09-26 17:51:35
【问题描述】:
我知道这个问题已经被问过一百万次了,但是有人可以向我解释一下 ADT 的确切含义(如果可能的话,用外行的话)?
我阅读了 ADT 的定义 - ADT 只提到了要执行的操作,但没有提到这些操作将如何实现。 原始数据类型也是如此。
假设如果我们有一个浮点数据类型,我们知道可以执行乘法、除法等操作(因此我们知道将执行哪些操作)但我们不知道它是如何执行的'将被执行(在乘法的情况下,我们可以只是乘法或重复加法,所以我们有两个过程给出相同的结果,因此它是抽象的)。所以这两种数据类型本质上是相同的。 (我知道这是不正确的)。
我知道我搞错了。有人可以帮我弄清楚这个概念吗?
【问题讨论】:
-
我们真的不确定你在问什么。
-
是的,我写的那个例子没有多大意义。我只是想找出 ADT 和 Primitive 数据类型之间的区别。
-
假设你想找到一个浮点数
x的floor(log_base(2, x))。如果您通过根据 IEEE 规范从内存中读取浮点指数的实际特定位来执行此操作,则您正在使用有关数据类型的特定表示的知识,即您将其视为具体数据类型。但是,如果您只调用提供的函数,则将 is 视为抽象数据类型。与整数相加相同,您可以自己操作位,或只需调用+。
标签: algorithm data-structures programming-languages adt abstract-data-type