1.1 数据
用来描述客观事务的数值、字符,能输入到计算机并且能被计算机处理的各种符号的集合
数据就是信息在计算机中的表示。
1.2 数据元素
数据元素就是数据的基本单位。在计算机中,通常把数据元素作为一个整体进行处理。
例如:描述学生信息的一条记录就是一个 数据元素
描述一个点坐标的信息就是一个 数据元素
数据元素通常由若干的数据项组成
例如:
描述学生信息的姓名、学号、年级就是数据项。
点坐标中的横坐标、纵坐标就是数据项。
1.3 数据对象
一组相同性质的数据元素的集合。
例如:
学校中所有学生的集合就是数据对象。
平面坐标中所有点的集合就是数据对象。
1.4 数据结构
相互之间存在一种或多种特定关系的数据元素的集合。
数据结构就是数据元素之间的关系。
传统上,数据结构分为逻辑结构和物理结构
-
逻辑结构
是指数据对象中数据元素之间的相互关系
-
物理结构
是指数据的逻辑结构在计算机中的存储形式
1.4.1四大逻辑结构
集合结构
集合结构中的数据元素除了同属于一个集合外,没有其它的相互关系。
线性结构
线性结构中的数据元素之间是一对一的关系
树形结构
树形结构中的数据元素之间存在一种一对多的层次关系
图形结构
图形结构的数据元素是多对多的关系
1.4.2 二元组
数据的逻辑结构一般采用二元组的形式定义:
数据结构 = (D,S)
其中:
D:数据元素的集合。
S:D中元素之间的关系集合。
例1:集合结构
二元组:set = (D,S),其中:
D={01,02,03,04,05}
S = {}
在set集合中,数据元素除了同一个集合外不存在其它关系,就是集合结构。
例2:线性结构
二元组: linearity = (D,S),其中:
D={01,02,03,04,05,06}
S = {<01,04>,<04,06>,<06,02>,<02,05>,<05,03>}
在数据结构 linearity中,数据元素是有序的,有一个被称为“第一个”的数据元素(数据元素01),还有一个被称为“最有一个”的元素(数据元素03),除了第一个元素外,其它每个元素都有一个直接前驱元素,除了最后一个元素外,其它每个元素都有一个直接后继元素。
数据元素之间是一对一的关系。
例3:树形结构
二元组:tree= (D,S),其中:
D={01,02,03,04,05,06}
S = {<01,02>,<01,03>,<02,04>,<02,05>,<03,06>}
在tree数据结构中,除了第一个元素(元素01)外,每个元素都有并且只有一个直接前驱元素,每个元素都有多个直接后继元素
数据元素直接是一对多的关系。
例4:图形结构/网状结构
二元组:graph= (D,S),其中:
D={01,02,03,04,05,05}
S = {<01,02>,<01,03>,<02,05>,<05,06>,<06,02>,<05,04>,<04,05>}
在graph数据结构中,每个元素可以有多个直接前驱元素,每个元素也可以有多个直接后继元素
1.4.3 物理结构
物理结构实际上就是研究如何把数据元素存储到计算机的存储器中。
存储器主要是针对内存而言,硬盘和光盘等外部存储器的数据组织通常是用文件结构来描述。
数据元素的存储结构形式有两种:顺序存储结构和链式存储结构。
顺序存储结构
把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
数据之间连在一起,数据的前驱与后继的关系可以通过数据元素在内存中相对位置反映出来。
例如编程语言中的数组
链式存储结构
把数据元素放在任意的存储单元里,这组存储单元是可以连续的,也是可以不连续的。每个元素保存下个元素的存储位置
例子:银行按号排对,这时你可以坐在任何地方,叫到相应的号码去窗口就可以了。