数据结构的研究内容
计算机研究数值计算时经过的步骤:
- 从具体问题抽象出具体数学模型。
- 设计一个解此数学模型的解法。
- 编写程序。
- 进行测试、调试。
基本概念和术语
- 数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。
- 数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位
- 数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。
- 数据对象:性质相同的数据元素的集合,是数据的一个子集
- 数据结构:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。(包括逻辑结构和存储结构两个层次)
- 逻辑结构:数据之间的相互关系(数据的逻辑结构可以看成是从具体问题抽象出来的数据模型)
1.集合—结构中的数据元素除了同属于一种类型外,别无其它关系。
2.线性结构—数据元素之间一对一的关系
3.树形结构—数据元素之间一对多的关系
4.图状结构或网状结构—结构中的数据元素之间存在多对多的关系 - 物理结构/存储结构:数据在计算机中的表示,数据元素在计算机中有两种存储结构,分别是顺序存储结构和链式存储结构。物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等
- 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。
- 顺序存储结构中,线性表的逻辑顺序和物理顺序总是一致的。但在链式存储结构中,线性表的逻辑顺序和物理顺序一般是不同的。
- 数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等
- 抽象数据类型:
1.作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。
2.定义:一个数学模型以及定义在该模型上的一组操作。
3.关键:使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。
例:线性表这样的抽象数据类型,其数学模型是:数据元素的集合,该集合内的元素有这样的关系:除第一个和最后一个外,每个元素有唯一的前趋和唯一的后继。可以有这样一些操作:插入一个元素、删除一个元素等。