数据结构的基本概念
数据:数据是信息的载体,是描述客观事物属性的数,字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。计算机只能处理二进制的数,即0或1
数据元素:是数据的基本单元,通常作为一个整体进行考虑和处理。
数据项:是构成数据元素的不可分割的最小单位,一个数据元素有若干个数据项组成。
要根据实际的业务需求确定数据元素和数据项
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合
数据对象:具有相同性质的数据元素的集合,是数据的一个子集。
数据结构的三要素
逻辑结构
数据元素之间的逻辑关系是什么
集合结构
各个元素同属一个集合
线性结构
数据元素之间是一对一的关系,除第一个元素,都有前驱,除了最后一个元素,都有后继。
树形结构
数据元素之间是一对多的关系,例如:思维导图,电脑各级目录等等
图状结构
数据元素之间是多对多的关系,社交网络
物理结构(存储结构)
如何用计算机表示数据元素之间的逻辑关系
以数据的逻辑结构为线性结构为例,探讨数据元素在物理内存中的存储方式
顺序存储
把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的相邻关系由存储单元的相邻关系来表示
链式存储
逻辑上相邻的元素在物理位置上可以不相邻,通过指针来表示元素之间的逻辑关系。
索引存储
在存储元素信息的同时,还建立附加的索引表,索引表有关键字和地址两列,索引表的每一项为索引项,索引项的形式为(关键字,地址)
关键字:可以区分不同数据元素的数据项
散列存储(哈希存储)
根据数据元素的关键字直接计算出数据元素的存储地址,又称哈希存储。
后面三种统称为非顺序存储
1.若采用顺序存储,那么各个数据元素在物理上必须是连续的;若采用非顺序储,数据元素在物理上可以是离散的。
2.数据的存储结构会影响存储空间分配的方便程度
3.数据的存储结构会影响对对数据的运算速度
数据的运算
施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。
逻辑结构 ———线性结构(队列)
1.结合需求
2.队头元素出队新元素入队
3.输出队列的长度
可以采用顺序存储或者链式存储
数据类型
是一个值的集合和定义在此集合上的一组操作的总称
1.原子类型 值不可再分
2.结构类型 其值可以再分解为若干成分的数据类型
例如:
布尔类型(bool) 与或非运算
整型(int)加减乘除等
抽象数据类型
是抽象数据组织及与之相关的操作
用数学化的语言定义数据的逻辑结构,定义运算,与具体的实现无关。