数据结构 - 抽象数据类型(ADT)VS混凝土数据类型(CDT)

时间:2017-12-02 21:11:32

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

因此,在研究数据结构时,我提出了一个问题。

CDT是一个完全成熟的ADT,即ADT的实现。

因此.h文件实际上是一个ADT(只有操作,不讨论它们将如何执行)。

但是通过显示.cpp文件,即实现文件。

我们能否得出结论,我们使用具体的数据结构(即数组或链表)制作了具体数据类型的堆栈?

是这样的吗?如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:0)

数组,列表和树是具体的数据类型。它们是通常由计算机语言提供的基本数据结构。 堆栈,队列和堆是抽象数据类型。它们只是想法,即"黑盒子"具有已定义的行为。要实现它们,您必须选择合适的具体数据类型。 特别是,堆栈和队列可以通过数组或链表实现。 堆可以由数组或二叉树实现

答案 1 :(得分:0)

嗯,不完全,至少在这些术语的传统用法中。

抽象数据类型是基于状态和可用操作的语句的mathematical model of a type

我认为你可能会想到一个抽象的,这是一个没有完全实现的类,因此必须进行细化以构建一个具体的类。

.h个文件指定类提供的接口。但是,在内联等方面,它并没有很好地适应抽象/具体的区别:你可以拥有一个完全实现具体类的.h文件。