1.1.1
1.数据
数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机并被计算机程序识别和处理符号的集合,数据是计算机程序加工的原料
2.数据元素
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。(典型的就是结构体,下一个博客会写)
3.数据对象
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2…}
4.数据类型
5.数据结构
强调关系
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构
1.1.2 数据结构的三要素
1.逻辑结构
数据元素之间的逻辑关系,与数据的存储无关。
集合:结构中的数据元素之间除“同属一个集合”外,别无其它关系。
线性结构:结构中的数据元素之间只存在一对一的关系
树形结构:结构中的数据元素之间存在一对多的关系
图状结构或网状结构:结构中的数据元素之间存在多对多的关系
2.数据的存储结构
存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构,包括:数据元素的表示和关系的表示。
顺序存储:
把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
优点:可以实现随机存取,每个元素占用最少的存储空间
缺点:只能使用相邻的一整块存储单元,可能产生较多的外部碎片
链式存储
不要求逻辑上相邻的元素在物理位置也相邻,借助元素存储地址的指针来表示元素之间的逻辑关系
优点:不会出现碎片现象,能充分利用所有存储单元
缺点:每个元素因存储指针而占用存储空间,且只能实现顺序存储
索引存储
在存储元素信息的同时,还建立附加的索引表。
索引表:索引表中每项称为索引项,索引项的一般形式是(关键字,地址)
优点:检索速度快
缺点:附加的索引表额外占用存储空间,增加和删除数据是也要修改索引表,花费时间较多
散列存储(哈希存储)
优点:检索、增加和删除结点的操作都很快
缺点:如果散列函数不好,可能出现元素存储单元的冲突,解决冲突会增加时间和空间开销。
3.数据的运算
施加在数据上的运算包括“运算的定义和实现”
运算的定义:针对逻辑结构,指出运算的功能
运算的实现:针对存储结构,指出运算的具体操作步骤