最近决定认真学学数据结构,在看完书的每一章后,把概要点列出来,方便自己查阅。
chapter 1 基础术语
数据: 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合,数据不仅仅包含数值类型,还包含非数值类型。
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。
数据项:数据项是数据不可分割的最小单位。定义:一个数据元素可以由若干个数据项组成。
数据对象:是性质相同的数据元素的集合,是数据的子集。这里,性质相同指【数据元素具有相同数量和类型的数据项】(一般的,我们把数据对象简称为数据{因为大多数实际应用中,处理的数据元素通常具有相同性质。})
数据结构:是相互之间存在一种或多种 特定关系 的 数据元素 的 集合。
对数据结构进行进一步划分:有
- 逻辑结构
- 物理结构
逻辑结构:指数据对象中数据元素之间的相互关系。【这是最需要关注的】
分为:
集合结构 : 集合结构中的数据元素除了同属于同一个集合外,没有其他的关系【即可以认为是“乱序”或者“无序“的】
线性结构 : 线性结构中的数据元素之间是”一对一“的关系。
树形结构 : 数据元素之间是一种”一对多"的层次关系。
图形结构 : 数据元素之间是一种“多对多”的关系。
在看书中的表示数据逻辑结构的示意图时:
每个数据元素被看做一个节点【圆圈表示】
数据元素之间的逻辑关系用结点之间的连线来表示。如果这个关系是有方向的,用带箭头的连线表示。
【可以发现,其实数据结构中的那些示意图可以看做是对数据元素间关系的表示和“建模”】
物理结构【/存储结构】:数据的逻辑结构在计算机中的存储形式。
【数据是数据元素的集合,物理结构实际就是如何把数据元素存储到计算机的存储器中{主要是内存}】
【数据的存储结构应正确反映数据元素之间的逻辑关系】
分为:
顺序存储结构:把数据元素存在在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
链式存储结构:数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以不连续。【数据元素的存储关系并不能反映其逻辑关系,因此需要用指针/下标{或者其他方式} 存放数据元素的“地址”,从而可以通过”地址“找到相关联的数据元素的位置。】
数据类型: 一组性质相同的值的集合及定义在此集合上的一些操作的总称。
(ADT)抽象数据类型: 指一个数学模型及定义在该模型上的一组操作。【ADT的定义仅仅取决于它的一组逻辑特性,与计算机如何内部表示无关】