数据结构之绪论
第一章绪论
第一节基本概念
数据:是信息的载体
数据对象:具有相同性质的数据元素的集合,是数据的一个子集
数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理
数据项:是构成数据元素的不可分割的最小单位
数据结构:是指相互之间存在一种或者多种特定关系的数据元素的集合
数据类型:原子类型(bool,int…)、结构类型(struct Coordinate{ int x; int y;}; )
抽象数据类型(ADT):抽象数据组织及与之相关的操作
第二节三要素
1.逻辑结构
集合结构:各个元素同属于一个集合,并无其他关系
线性结构:一对一关系,除第一个元素,所有元素都有唯一前驱;除最后一个元素,所有元素都有唯一后继
树形结构:一对多关系,例:思维导图、文件夹
网状结构:多对多关系,例:道路信息,朋友圈关系
2.数据的运算
——针对某种逻辑结构,结合实际需求,定义基本运算
3.物理结构(存储结构)
——如何用计算机表示数据元素的逻辑关系
顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系
索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)
散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储
小结:
1)若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的
2)数据的存储结构会影响存储空间分配的方便程度
3)数据的存储结构会影响对数据运算的速度,例:在元素之间插入新元素
第三节算法
——是对特定问题求解步骤的一种描述
五个特性:有穷性、确定性、可行性、输入、输出
“好”算法的特性:正确性、可读性、健壮性、高效率和低存储量需求
1.时间复杂度
——时间开销与问题规模n之间的关系
2.空间复杂度
——空间开销(内存开销)与问题规模n之间的关系