本文只是初学者笔记分享,希望可以帮到同为初学者有些摸不清门路的朋友,更专业的知识讲解本文就略显疲态了,笔记基于严蔚敏《数据结构(C语言版)》
-
绪论
- 什么是数据结构?
- 研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科。
- 基本概念和术语
- 数据元素:是数据的基本单位,一个数据元素可由若干个数据项组成【例:一本书的书目信息为一个数据元素,书目信息中每一项如书名,作者名,为一个数据项】
- 数据对象:性质相同的数据元素的集合。
- 数据结构:相互之间存在一种或多种特定关系的数据元素集合。
- 数据结构四类基本类型:1)集合;2)线性结构;3)图状结构;4)网状结构。
- 定义数据结构:结构定义中的关系描述的是数据元素之间的逻辑关系,亦称作数据的逻辑结构。数据结构在计算机中的映像称作数据的物理结构。
- 计算机中,表示信息的最小单位叫做位,若干位形成位串,一个位串表示一个数据元素,称该位串为元素或结点。当数据元素有若干数据项组成时,位串中对应于各个数据项的子位串称为数据域。元素和结点因此可以看作是数据元素在计算机中的映像。
- 抽象数据类型(简称ADT):指一个数学模型以及定义在该模型上的一组操作,与其在计算机内部如何实现和表示无关,不同的机器不同的语言实现方法不同,但是定义的数学特性是相同的。是用来抽象定义一个数据类型的,内容包括数据对象,关系集合。基本操作集合。
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作名(参数表)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
“基本操作” 有两种参数:赋值参数只提供输入值;引用参数以&打头,还将返回操作结果。
”初始条件“ 描述了操作执行之前数据结构和参数应该满足的条件,若不满足则操作失败,并且返回相应出错信息。
“操作结果” 说明了操作正常完成以后,数据结构的变化状况和应该返回的结
果。如果初始条件为空,则省略。
- 抽象数据类型的表示与实现
- 数据结构的表示(存储结构)用类型定义(typedef)描述。
-
数据元素类型约定为ElemType,由用户在使用该数据类型时自行定义。
-
算法与算法分析
-
算法5个重要特性:1)有穷性(合理可接受,而非数学上的有穷);2)确定性(不产生二义性);3)可行性;4)输入;5)输出。
-
算法设计的要求:1)正确性;2)可读性;3)健壮性(没有莫名其妙的bug)
-
算法效率的度量
-
时间复杂度:随着问题规模增大,算法执行时间的增长率
-
空间复杂度:随着问题规模增大,算法执行空间消耗的增长率
-
-
- 什么是数据结构?