数据结构是一种组织数据以允许对其执行某些特定操作的方式的抽象描述。例如,二叉树,斐波纳契堆,AVL树或跳过列表都是数据结构。理论学家描述了数据结构并证明了它们的性质,以表明在某些假设下可以有效地解决某些算法或问题。
数据类型是所有共享某些属性的具体对象的类(可能是无限的)。例如,“整数”是包含所有无限多个整数的数据类型,“字符串”是包含所有无限多个字符串的数据类型,“32位整数”是包含所有可以用三十个整数表示的整数的数据类型-两位。不需要数据类型在语言中是原始的,例如,在C++中,int
类型是原始的,就像这样:
struct MyStruct {
int x, y;
};
在这种情况下,
MyStruct
是一种数据类型,表示所有可能的标有
MyStruct
的对象,其中有两个
int
和
x
和
y
。
可能具有表示数据结构的所有可能实例的数据类型。例如,您可以使用以下数据类型对二进制搜索树进行编码:
struct BST {
int data;
BST* left, *right;
};
简而言之,数据结构是具有某些属性集的数学对象,可以用许多不同方式将其实现为数据类型。数据类型只是可以具体构造和表示的一类值。