临近春招,开始补《数据结构与算法》,做个笔记为以后查看方便。
数据结构的基本概念与术语
当我们说到数据结构的时候一般主要包含以下三个方面。
1、数据元之间的逻辑关系,也称为逻辑结构。
2、数据元及其关系在计算机内存中的表示(又称为映像),这个关系的表示又称之为数据的物理结构或存储结构。
3、数据的运算与实现。
数据结构的两个层次
逻辑结构
- 描述数据元素之间的逻辑关系
- 与数据的存储无关,独立于计算机
- 从具体问题抽象出来的数学模型
逻辑结构的种类
逻辑结构的划分方式可以分为两种:
线性与非线性
线性结构
有且仅有一个开始与一个结尾,并且所有的结点最多只有一个直接前驱和直接后继。
例如:线性表、栈、队列、串
非线性
一个结点可以有多个直接前驱和直接后继。
例如:图、树
四种基本逻辑结构
集合结构:结构中的数据元之间除了同属一个集合之外无其他任何关系。
线性结构:结构中的数据元存在一对一的线性关系。
树形结构:结构中的数据元存在一对多的层级关系。
图状结构或者网状结构:结构中的数据元存在多对多的任意关系。
物理结构(存储结构)
- 数据元素及其关系在计算机存储器中的结构(存储方式)
- 数据结构在计算机中的表示
四种基本的存储结构
- 顺序存储结构
- 链式存储结构
- 索引存储结构
- 散列存储结构
逻辑结构与物理结构之间的关系
- 存储结构是逻辑关系的映像与元素本身的映像
- 逻辑结构是数据结构的抽象,存储结构是数据结构的实现
- 两者综合起来建立了数据元素之间的结构关系。
数据类型与抽象数据类型
数据结构中的数据一般都会划分类型,比较易于理解的就是数据类型了,数据类型,顾名思义就是一组性质相同的值的集合以及定义这个值集合的一组操作的总称。
我的理解就是数据类型是对一组数据及对其的一些具体的操作,比如对于一些布尔值,你对他们的操作基本上是大同小异的,就是用来判断。
而抽象数据类型是数据类型的一个子集。
抽象数据类型
形式
抽象数据类型可用(D,S,P)三元组表示。
其中: D:数据对象。
S:数据对象上的关系集。
P:对数据对象的基本操作。
对抽象数据类型的自定义:
(图截取于青岛大学王卓老师的《数据结构与算法基础》课程)
最后总结一下基本概念:
个体数据叫数据元素,一些性质相同数据元素构成的集合叫数据对象,数据对象加上数据元素之间的关系时就是数据结构,数据结构又分为映射到内存的存储结构和不涉及硬件存储的逻辑结构,数据结构加上行为操作的时候就是抽象数据结构。