数据结构之绪论

第一章绪论

第一节基本概念

数据:是信息的载体

数据对象:具有相同性质的数据元素的集合,是数据的一个子集

数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理

数据项:是构成数据元素的不可分割的最小单位

数据结构:是指相互之间存在一种或者多种特定关系的数据元素的集合

数据类型:原子类型(bool,int…)、结构类型(struct Coordinate{ int x; int y;}; )

抽象数据类型(ADT):抽象数据组织及与之相关的操作

第二节三要素

1.逻辑结构

集合结构:各个元素同属于一个集合,并无其他关系

线性结构:一对一关系,除第一个元素,所有元素都有唯一前驱;除最后一个元素,所有元素都有唯一后继

树形结构:一对多关系,例:思维导图、文件夹

网状结构:多对多关系,例:道路信息,朋友圈关系

2.数据的运算

——针对某种逻辑结构,结合实际需求,定义基本运算

3.物理结构(存储结构)

——如何用计算机表示数据元素的逻辑关系

顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现

链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系

索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)

散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储

小结:

1)若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的

2)数据的存储结构影响存储空间分配的方便程度

3)数据的存储结构影响对数据运算的速度,例:在元素之间插入新元素

第三节算法

——是对特定问题求解步骤的一种描述

五个特性:有穷性、确定性、可行性、输入、输出

“好”算法的特性:正确性、可读性、健壮性、高效率和低存储量需求

1.时间复杂度

——时间开销与问题规模n之间的关系

2.空间复杂度

——空间开销(内存开销)与问题规模n之间的关系