前言:
当有大量数据需要处理时,怎么整理、使用数据就显得尤为重要。数据结构就是用于显示数据之间关系的。使用好数据结构可以加快数据的查询,修改等一系列操作,提高效率,降低复杂度。
概念
•数据:指所有能输入到计算机中存储并被计算机程序处理的符号集合
•数据元素:数据的基本单位,在计算机中通常将其作为一个整体进行考虑和处理
例如,我们以学号、性别、姓名来识别某个学生。那么由学号、性别、姓名组成的记录将构成一个数据元素(代表学号、性别、姓名中所含的数据);换个角度看,某个学生的学号、性别、姓名也可以看作是一个数据元素(代表某个学生的所有数据)
•数据项:构成数据元素的不可分割的最小单位。也被称为字段、域或属性
•数据对象:是性质相同的数据元素的集合,是数据的一个子集
e.g.整数的数据对象是集合N={0,-1,1,-2,2,...}
•数据结构:是相互之间存在的一种或多种特定关系的数据元素。包括逻辑结构和存储结构
数据的逻辑结构
数据的逻辑结构是从数据元素的逻辑关系上抽象出来的,数据的逻辑结构与数据的存储无关,是独立域计算机的。
数据元素之间的逻辑结构是多种多样的,通常可分为集合结构、线性结构、树形结构和网状(图状)结构
集合结构
线性结构
树状结构
网状结构
数据的存储结构
•顺序存储结构:
采用一组物理上连续的存储单元来依次存放所有的数据元素。
在这一存储结构中,逻辑相邻的元素储存地址也相邻。因此,存储这些数据元素时,只需要存储数据元素,而不需要存储各元素之间的关系。
•链式存储结构::每一个数据元素均使用一个节点来存储,且每个节点的存储空间是单独分配的,因此存储这些结点的空间不一定等级连续的。
在存储过程中我们要存储两部分内容,数据域(存放数据元素本身)与指针域(存放下一个节点的所在地址)
•索引存储结构:
不仅需要存储所有数据元素,还需要建立附加的索引表。
在存储时,每个数据都由一个唯一的关键字来标识,由该关键字和对应元素的地址构建一个索引项,并存入索引表中。查找时先从索引表中查到索引项,再查找对应的数据元素。
查找效率高,空间利用率低
•哈希(或散列)存储结构:
依据数据元素的关键字,通过实现设计好的哈希(或散列)函数计算出一个值,再将其作为数据元素的存储地址。
因此使用哈希(或散列)存储结构可以实现快速查找。并且使用哈希存储结构式,只需要存储数据元素,而不需要存储数据元素之间的关系。