起源
① 1968年美国的高德纳教授发表了《计算机程序设计艺术》第一卷《基本算法》开创了数据结构与算法的先河
② 数据结构是一门研究数据之间关系和操作的学科,而非计算方法
③ 数据结构+算法=程序 沃斯提出,并凭借该论点获得图灵奖,这句话揭示了程序本质
基本概念
① 数据:所有能够输入到计算机中,能被程序所处理的能描述客观事物特征的符号
② 数据项:有独立含义的数据的最小单位,数据域、域
③ 数据元素:组成数据的有一定含义的基本单位,也叫节点、结点、记录。一个元素由若干数据项组成
④ 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
⑤ 算法:数据结构具备的某些功能,能够解决某种特定的问题的方法
数据结构研究的三个方面
① 数据的逻辑结构
集合:数据元素同属于一个集体,但是元素之间没有任何关系
线性结构(表):数据元素之间存在一对一的关系
树型结构(树):数据元素之间存在一对多的关系
图型结构(图):数据元素之间存在多对多的关系
② 数据的存储结构(物理结构)
顺序结构:数据元素存储在连续内存中,用数据元素的相对位置来表示之间的关系
优点:支持随机访问,访问效率高,适合查找数据
缺点:对内存要求高,空间利用率低
链式结构:数据元素存储在彼此相互独立的的内存空间中,每个独立的数据元素(节点),每个节点中会增加一个数据项用于存储其他节点的地址(指针),用于表示数据节点之间的关系
优点:对内存要求低,空间利用率高,插入删除方便
缺点:不支持随机访问,只能从前到后逐个访问
逻辑结构与物理结构的关系
表:顺序、链式
树:链式、顺序
图:链式+顺序、顺序
每种逻辑结构采用什么物理结构没有明确规定,通常是根据实现的难度以及空间、时间方面的要求,来选择合适的物理结构。
③ 数据结构的运算
建立数据结构 | create creat | 销毁数据结构 | destroy |
清空数据结构 | clean | 插入元素 | insert add |
删除元素 | delete | 访问元素 | access |
查询元素 | query | 修改元素 | modify |
数据结构排序 | sort | 遍历数据结构 | show print ergodi |