zwo*_*wol 30 language-agnostic theory data-structures
试图回答复合数据类型和数据结构之间的区别是什么?我意识到虽然我清楚地知道数据类型是什么,以及它与数据结构的不同之处,但我无法将其区分为单词.如果您正在教授入门CS课程,您会如何解释其中的差异?
tem*_*def 38
数据结构是组织数据的方式的抽象描述,以允许有效地执行对其的某些操作.例如,二叉树是数据结构,Fibonacci堆,AVL树或跳转列表也是如此.理论家描述数据结构并证明其属性,以表明某些算法或问题可以在某些假设下有效地解决.
数据类型是一个(可能是无限的)具体对象类,它们共享一些属性.例如,"integer"是包含所有无限多个整数的数据类型,"string"是包含所有无限多个字符串的数据类型,"32位整数"是包含所有可在30个字符表示的整数的数据类型 - 两位 不要求数据类型是语言中的基元 - 例如,在C++中,类型int是基元,就像这样:
struct MyStruct {
int x, y;
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,MyStruct是一种数据类型,表示标记的所有可能对象MyStruct,其中有两个int标记为x和y.
可以具有表示数据结构的所有可能实例的数据类型.例如,您可以使用以下数据类型对二叉搜索树进行编码:
struct BST {
int data;
BST* left, *right;
};
Run Code Online (Sandbox Code Playgroud)
简而言之,数据结构是具有一些属性的数学对象,这些属性可以以许多不同的方式实现为数据类型. 数据类型只是一类可以具体构造和表示的值.
Fem*_*ref 11
数据类型不能再减少,而数据结构可以,因为它由不同数据的多个字段组成.
然而,最有可能的是,我会使用类比 - 数据类型是原子,而数据结构是分子.(是的,我知道,原子可以分裂等,但这个类比应该为此目的而坚持).