我想更正以下开始 - 您创建了一个名为“Tree”的类和一个名为“myTree”的对象,而不是一个名为“myTree”的数据类型“Tree”的变量。这些是不同的东西。
以下是数据类型的定义:
数据类型或简单类型是识别各种类型数据之一的分类,例如实值、整数或布尔值,它确定该类型的可能值;可以对该类型的值执行的操作;数据的含义;以及可以存储该类型值的方式。
现在,根据 Wikipedia,数据类型中的“类型”有多种定义。
你问的问题很好。当今现代语言中有一些数据类型,简称为抽象数据类型或 ADT。ADT的定义是:
抽象数据类型(ADT)是具有相似行为的某一类数据结构的数学模型;或者对于具有相似语义的一种或多种编程语言的某些数据类型。抽象数据类型是间接定义的,仅由可能对其执行的操作以及对这些操作的效果(和可能的成本)的数学约束来定义。
还写到:
抽象数据类型是纯粹的理论实体,用于(除其他外)简化抽象算法的描述、分类和评估数据结构以及正式描述编程语言的类型系统。但是,ADT 可以通过特定的数据类型或数据结构以多种方式和多种编程语言实现;或用正式的规范语言描述。
这意味着可以使用数据类型或数据结构来实现 ADT。
至于数据结构:
数据结构是在计算机中存储和组织数据的一种特殊方式,以便可以有效地使用它。
许多教科书交替使用这些词。对于更复杂的类型,这可能会导致混乱。
举个小例子:使用 b-tree 实现数据库是一种标准。这意味着,我们知道这种类型的 ADT 非常适合这种类型的问题,并且可以更有效地处理它。但是为了在 ADT 中注入这种有效性,您需要创建一个数据结构来为您提供所需的输出。
另一个例子:有很多树,如b-tree、二叉搜索树、AA树等。所有这些本质上都是树的类型,但每一棵树都有自己的数据结构。
请参阅:数据结构列表以获取大量可用结构。