一、概念
1、数据
所有能够输入到计算机中,且能被计算机处理的符号的集合。
计算机中的各种文件都是数据。而数据结构中主要讨论结构化数据。
2、结构化数据
即具有某种规则的数据。
例如一个学生表:
3、数据元素
是数据(集合)中的一个“个体”,它是数据的基本单位。
如上表中一条记录就是一个数据元素。
4、数据项
数据的最新单元。
如上表中每个单元格中的内容都是一个数据项。
5、数据对象
相同特性数据元素的集合,是数据的一个子集。
如上表中两条记录就构成一个数据对象。
7、算法
数据元素之间的关系有逻辑关系和物理关系,对应的运算有基于逻辑结构的运算描述和基于存储结构的运算实现。
通常把基于存储结构的运算实现的步骤或过程称为算法。
二、数据结构的构成
数据结构由三部分构成:
- 逻辑结构:数据元素之间的逻辑关系。
- 物理结构:数据元素及其关系在计算机存储器中的存储方式。
- 数据运算:施加在该数据上的操作。
三、数据逻辑结构的表示方法
1、图表和图形
如上面的图片就是一种表示方法。略。
2、二元组法:一种通用的逻辑结构表示方法
一个二元组表示为:B=(D,R)
数据元素的集合D:D={ di | 1≤i≤n,n≥0}
关系的集合R:R={ rj | 1≤j≤m,m≥0}:
关系的集合R可以用多个序偶来表示:
- 序偶<x,y>表示x、y是有向的;序偶(x,y)表示x、y是无向的
- 序偶<x,y>(x,y∈D):x为第一元素,y为第二元素。x为y的前驱元素。y为x的后继元素。
- 若某个元素没有前驱元素,则称该元素为开始元素
- 若某个元素没有后继元素,则称该元素为终端元素。
示例1:
示例2:
并不直观。
四、数据存储结构的表示方法
1、顺序存储结构
- 所有元素占用一整块内存空间。
- 逻辑上相邻的元素,物理上也相邻。
2、链式存储结
- 一个逻辑元素用一个结点存储,每个结点单独分配,所有结点的地址不一定是连续的。
- 用指针来表示逻辑关系。
五、逻辑结构类型
1、集合
元素之间关系:无。
特点:数据元素之间除了“属于同一个集合”的关系外,别无其他逻辑关系。是最松散的,不受任何制约的关系。
2、线性结构
元素之间关系:一对一。
特点:开始元素和终端元素都是唯一的,除此之外,其余元素都有且仅有一个前驱元素和一个后继元素。
3、树形结构
元素之间关系:一对多。
特点:
- 开始元素唯一,终端元素不唯一。
- 除终端元素以外,每个元素有一个或多个后续元素。
- 除开始元素外,每个元素有且仅有一个前驱元素。
4、图形结构
元素之间关系:多对多。
特点:所有元素都可能有多个前驱元素和多个后继元素。
六、存储结构类型
存储结构可归纳为以下几种:
- 顺序存储结构
- 链式存储结构
- 索引存储结构
- 哈希(散列)存储结构
七、数据结构求解问题的过程
- 问题描述:描述(定义)数据的逻辑结构、数据的抽象运算(数据要进行的操作)。
- 储存结构设计:确定逻辑结构在计算机中的储存、操作方式。
- 算法设计:设计出能实现数据抽象运算的算法。
- 算法分析:找出最优算法
八、算法的五个重要的特性
- 有穷性:在有穷步之后结束,算法能够停机。
- 确定性:无二义性。
- 可行性:可通过基本运算有限次执行来实现,即算法中每一个动作能够被机械地执行。
- 有输入数据
- 有输出数据