数据结构
绪论(一)
思维导图
1.1 基本概念
数据 (Data) 是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本
编辑中用到的字符串,多媒体程序处理的图形、 图像、声音及动画等通过特殊编码定义后的数据。
数据元素(DataElement) 是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。 在有些情况下,数据元素也称为元素、记录
等。数据元素用于完整地描述一个对象,如一名学生记录,树中棋盘的一个格局(状态),以及图中的一个顶点等。
数据项 (Data Item) 是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据
项。 是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={O, 士1’ 士2,…}, 字母字符数据对象是集合C={‘A’,’B’, …,’Z’,’a’,’b’, …, ‘z’}, 学生基本信息表也可以是一个数据对象。由此可以看出,不论数据元素集合是无限集(如 整数集),或是有限
集(如字母字符集),还是由多个数据项组成的复合数据元素(如学生表) 的集合,只要集合内元素的性质均相同,都可称之为一个数据对
象。
1.2 数据结构
- 数据结构 (Data Structure)== 是相互之间存在一种或多种特定关系的数据元素的集合。
- 线性结构包括线性表、栈和队列、字符串、数组、 广义表。
- 非线性结构包括树和二叉树、 有向图和无向图。
1.2.1 逻辑结构
线性结构
结构中的数据元素之间只存在一对一的关系
树形结构
结构中的数据元素之间只存在一对多的关系
图状结构
结构中的数据元素之间只存在多对多的关系
1.2.2 存储结构
顺序存储
顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
链式存储
链式存储。 逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
索引存储
索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)
散列存储
散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储
总结
绪论部分只需要理解两点:
1、若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的。
2、数据的存储结构会影响存储空间分配的方便程度。
3、数据的存储结构会影响对数据运算的速度。
1.2.3 数据计算
施加在数据上的运算包括运算的定义和实现。 运算的定义是针对逻辑结构的,指出运算的功能;
运算的实现是针对存储结构的,指出运算的具体操作步骤。
常用的数据计算:增删改查排。