主要参考资料《大话数据结构》
一.基本概念
- 数据:描述客观事物的符号。 前提是:
1.可以输入到计算机中
2.能被计算机程序执行
- 数据对象: 数据的子集。是性质相同的数据元素的集合。
什么是性质相同呢:比如人都有“姓名”、“性别”、“年龄”等数据项,这些“人”数据元素都有相同数量和类型的数据项。
- 数据元素: 组成数据的有一定意义的基本单位。也称作“记录” 或 “结点”
- 数据项:数据不可分割的最小单位。一个数据元素可以由若干个数据项组成。
要自己想一个例子来理解这些概念的话,
好比在中药材当中,有茯苓、柴胡等药材,每种药材都有其学名,性状等信息:
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
1.它研究的是数据的逻辑结构和物理结构,以及二者间的相互关系。
2.并且对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据结构 要点即是:数据之间的相互关系,包含三个内容:逻辑结构,存储结构和数据的运算
二.数据结构的分类
按照逻辑结构划分:
1.线性结构: 线性表、栈、队列
2.非线性结构:树、图按照存储结构划分:
1.顺序结构
2.链式结构
3.索引结构
4.哈希结构
1.逻辑结构
逻辑结构是指数据对象中,数据元素的相互关系。
其可分为以下四种:
- 集合结构:数据元素之间没有其他关系,只是同属于一个集合
- 线性结构:数据元素间呈一对一的关系
- 树形结构:数据元素呈层次关系,一对一或一对多
- 图形结构:数据元素间是多对多的关系
归纳一下就是:
2.物理结构(存储结构)
物理结构是指数据的逻辑结构在计算机的存储形式。
- 顺序存储结构:把数据元素放在 地址连续 的存储单元里。其数据间的逻辑关系和物理关系是一致的。
假如是这种情况,就不是顺序存储结构了:
链式存储结构:把数据元素放到任意的存储单元里。每个节点用对象引用变量来建立对象间的链接
- 索引存储结构:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干索引项组成。
特点: 索引存储结构是用结点的索引号来确定结点存储地址,其优点是检索速度快,缺点是增加了附加的索引表,会占用较多的存储空间。
- 散列存储
又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了可以用于查找外,还可以用于存储。