本文章是本人通过观看王道数据结构教学视频自行归纳整理便于理解复习,希望也能帮到大家
一、什么是数据
在了解数据结构的概念之前,我们要先了解什么是数据,数据是信息的载体,在日常生活中,公司的财报,信息表的汇总,这些都是数据。是能被计算机识别并处理的符号的集合。
1.1、数据元素
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
在上图中,构成这张表的所有元素的集合叫做数据,而数据元素则是例如 姓名-财富-来源等构成的集合。
1.2、数据对象
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
下图是数据、数据对象、数据元素、数据项之间的关系
二、数据结构
2.1、数据结构的定义
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。例如在上图中,我们列举财富在3000亿元以上的人,那么总共就有三人,他们之间就有特定的关系,即财富在3000亿元以上的线性排行,所以他们具有数据结构的关系,其他人则没有相关关系。
数据对象与数据结构的区别:数据元素之间只要有相同的性质,就可以从属于一个数据对象,而数据结构则需要数据元素间有特定的关系,可以是线性关系,也可以是网状关系,如人物交际网,或者是其他关系。
2.2、数据结构的三要素
2.2.1、逻辑结构
逻辑结构包括集合结构,线性结构(一对一),树形结构(一对多),图状结构(多对多)
集合结构:各个数据元素具有数学意义上集合的关系,如班级里所有学生与男生的关系
线性结构:数据元素是一对一的关系,除了第一个元素,每个元素都有唯一前驱,除了最后一个元素,每个元素都有唯一后驱。如班级里学生的身高排行
树形结构:数据结构是一对多的关系,如文件夹的展开、思维导图的建立
网状结构:数据元素之间是多对多的关系,如道路信息、人物交际图
2.2.2、数据的运算
定义:针对于某种逻辑结构,结合实际需求,定义基本运算
如在线性结构中查找第i个元素,在第i个位置插入一个新数据元素
2.2.3、物理结构(存储结构)
数据的存储结构包括:顺序存储、链式存储、索引存储、散列存储,其中除了顺序存储外,其他三种存储方式都是非顺序存储
拿线性结构举例:
顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储的指针来表示元素之间的逻辑关系,后面所学习的链表就是这种存储方式
索引存储:在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是(关键字,地址),例如我们通过身份证的索引找到相关人员的个人信息
散列存储:根据元素的关键字直接计算出该元素的存储地址