数学结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等学科。
描述非数值问题的数学模型不是数学方程,而是诸如表、树和图之类的具有逻辑关系的数据。
1. 基本概念
1.1 数据(data)
数据是能输入计算机且能被计算机处理的各种符号的集合。
它是信息的载体,是对客观事物符号化的表示,能够被计算机识别、存储和加工。
包括:
数值型的数据:整数、实数等
非数值的数据:文字、图像、图形、声音等
1.2 数据元素(data element)
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
一个数据元素可由若干个数据项(data item)组成。
数据项是数据的不可分割的最小单位。
1.3 数据对象(data object)
数据对象是性质相同的数据元素的集合,是数据的一个子集。
1.4 数据元素和数据对象与数据的关系
数据元素————组成数据的基本单位
与数据的关系:是集合的个体
数据对象————性质相同的数据元素的集合
与数据的关系:是集合的子集
2. 数据结构(data structure)
数据结构是相互之间存在一种或多种特定关系的数据元素的集合;或者说数据结构是带结构的数据元素的集合。
数据元素都不是孤立存在的,他们之间存在着某种关系,这种数据元素相互之间的关系成为结构。
2.1 数据结构包括以下三个方面的内容:
数据元素之间的逻辑关系,又称为数据的逻辑结构。数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。2.2 数据结构的两个层次
2.2.1 逻辑结构
描述数据元素之间的逻辑关系与数据的存储无关,独立于计算机是从具体问题抽象出来的数学模型2.2.2 存储结构
数据元素及其关系在计算机存储器中的结构(存储方式)是数据结构在计算机中的表示2.2.3 逻辑结构与存储结构的关系
存储结构是逻辑关系的映像与元素本身的映像逻辑结构是数据结构的抽象,存储结构是数据结构的实现两者综合起来建立了数据元素之间的结构关系3. 逻辑结构
3.1 划分方式一:
(1). 线性结构(一对一)
有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。
例如:线性表、栈、队列、串。
(2). 非线性结构(一对多,多对多)
一个结点可能有多个直接前趋和直接后继。
例如:树、图。
3.2 划分方式二:
(1). 集合:结构中的数据元素有且只有同属于一个集合的关系。
(2). 线性结构:结构中的数据元素之间存在一对一的关系。
(3). 树形结构:结构中的数据元素之间存在一对多的关系。
(4). 图状结构或网状结构:结构中的数据元素之间存在多对多的关系。
4. 存储结构
4.1 存储结构的种类
顺序存储结构链式存储结构索引存储结构散列存储结构其中前两个为重点,后两个了解即可(暂时)。
4.2 顺序存储结构
用一组连续的存储单元依次存储数据元素、数据元素之间的逻辑关系有元素的存储位置来表示
C语言中用数组来实现顺序存储结构。
例如:(bat,cat,eat,…)
4.3 链式存储结构
用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示
C语言中用指针来实现链式存储结构
例如:(bat,cat,eat,…,mat)
4.4 索引和散列存储结构
字体略微有点草率,请见谅!!!