数据结构简介
定义 按照一定规则,操作元素的,集合
作用 描述在计算机中数据元素的排列方式,强调数据元素之间的关系,是数据的逻辑结构
基本术语
-
数据:可以输入到计算机中,能被计算机程序处理的符号 数字、字符、声音、图像等
-
数据对象:具有相同性质的数据元素的集合,是数据的子集
-
数据元素:组成数据的基本单位,在计算机中作为整体处理,一个数据元素由若干个数据项组成
-
- 例如:在人类中,组成人类的数据元素是人
-
数据项:数据项是数据不可分割的最小单位
-
- 例如:数据元素人,有年龄,名字,性别这些数据项
-
抽象:抽取出事物的普遍性的本质,是一种思考问题的方式,隐藏了细节,只保留实现目标所必需的信息
-
抽象数据类型(ADT):指一个数学模型,以及定义在该模型上的一组操作
-
数据类型:是一个 值的集合和定义在此集合上的一组操作的总称
-
原子类型。其值不可再分的数据类型。int、bool
-
结构类型。其值可以再分解为若干成分(分量)的数据类型。struct
-
图片来自王道数据结构视频,如侵权请联系删除
数据结构分类
1、逻辑结构
数据对象中数据元素之间的相互关系
逻辑结构分为:
- 集合结构:除了数据元素同属一个集合之外,它们之间没有其他关系
- 线性结构:数据元素之间是一对一的关系
- 树形结构:数据元素之间是一对多的关系
- 图形结构:数据元素之间是多对多的关系
2、物理结构
指数据的逻辑结构在计算机中的储存形式
物理结构分为:
-
顺序储存结构:把数据元素放在地址连续的储存单元里,数据间的逻辑关系和物理关系一致 例如:数组
-
非顺序储存结构
-
- 链式储存结构:把数据元素放在任意的储存单元里,这组储存单元可以是连续的,也可以是不连续的 例如:链表
-
- 索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项
-
- 散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储
注:
-
若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的。
-
数据的存储结构会影响存储空间分配的方便程度
-
数据的存储结构会影响对数据运算的速度
eg:在b和d之间插入新的元素
3、逻辑结构和物理结构的不同
逻辑结构是为了解决某个问题,选择合适的数据结构表示数据元素之间的逻辑关系
物理结构面向如何将数据结构储存到内存中,反映数据之间的逻辑关系
数据的运算
定义:结合逻辑结构、实际需求来定义基本运算
例如:线性结构的基本运算:
①查找第i个数据元素
②在第i个位置插入新的数据元素
③删除第i个位置的数据元素