解释数据*结构*和数据*类型*之间的区别[关闭]
收藏

在尝试回答时,复合数据类型和数据结构之间有什么区别?我意识到,虽然我对数据类型是什么以及与数据结构有何不同一清二楚,但我无法用语言表达差异。如果您正在教授CS入门课程,您将如何解释差异?

最佳答案

数据结构是对组织数据以允许对其进行某些特定操作的一种方式的抽象描述。例如,二叉树,斐波纳契堆,AVL树或跳过列表都是数据结构。理论家描述了数据结构并证明了它们的性质,以表明在某些假设下可以有效地解决某些算法或问题。

A data type is a (potentially infinite) class of concrete objects that all share some property. For example, "integer" is a data type containing all of the infinitely many integers, "string" is a data type containing all of the infinitely many strings, and "32-bit integer" is a data type containing all integers expressible in thirty-two bits. There is no requirement that a data type be a primitive in a language - for example, in C++, the type int is a primitive, as is this one:

struct MyStruct {
    int x, y;
};

In this case, MyStruct is a data type representing all possible objects labeled MyStruct that have two ints in them labeled x and y.

可能具有表示数据结构的所有可能实例的数据类型。例如,您可以使用以下数据类型对二进制搜索树进行编码:

struct BST {
    int data;
    BST* left, *right;
};

简而言之,数据结构是具有某些属性集的数学对象,可以通过许多不同方式将其实现为数据类型。数据类型只是可以具体构造和表示的一类值。

    公众号
    关注公众号订阅更多技术干货!