【问题标题】:Data structures - Abstract data type (ADT) VS Concrete data type (CDT)数据结构 - 抽象数据类型 (ADT) VS 具体数据类型 (CDT)
【发布时间】:2017-12-02 21:11:31
【问题描述】:

所以在研究数据结构时我想出了一个问题。

CDT 是成熟的 ADT,即 ADT 的实现。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      抽象数据类型是一个mathematical model of a type,基于状态和可用操作的声明。

      我想你可能会想到一个抽象的,它是一个没有完全实现的类,因此必须对其进行细化以形成一个具体的类。

      .h 文件指定类提供的接口。但是,考虑到内联等,它不太适合抽象/具体的区别:您可以拥有一个完全实现具体类的.h 文件。

      【讨论】:

        猜你喜欢
        • 2021-11-13
        • 2014-08-22
        • 1970-01-01
        • 2012-12-07
        • 1970-01-01
        • 2012-05-03
        • 1970-01-01
        • 2019-03-12
        • 2020-05-05
        相关资源
        最近更新 更多