王道章节内容
知识框架
考纲内容
算法时间复杂度和空间复杂度的分析与计算
正文
数据结构
基本概念
数据(符号、可输入、被处理):
描述客观事物的符号,是计算机可以操作的对象,是能够被计算机识别,并输入给计算及处理的符号集合;
既包括整型、实型等数值类型,也包括字符、声音、图像等非数值类型。
数据元素(基本单位):
组成数据的、有一定意义的基本单位;
例如:人类——人,畜禽类——牛马鸡羊。
数据项(元素的细分,最小单位):
若干个数据项组成了数据元素;
例如:人——眼睛嘴巴鼻子,学习记录——学号姓名性别。
数据对象(性质相同):
性质相同的数据元素的集合,数据的子集;
性质相同,指数据元素具有相同数量和类型的数据项;
例如:整数集合、人有姓名、生日、性别等相同的数据项。
数据类型:
- 原子类型:其值不再可分;
- 结构类型:其值可以分解为若干成分(分量);
- 抽象数类型(ADT):一个数学模型及定义在该数据模型上的一组操作。包含“一个数据对象”、“数据对象中各数据元素之间的关系”和“对数据元素的操作”,体现程序设计中“问题分解”、“抽象”和“信息隐藏”的特性。
补充:能和我讲讲抽象数据类型中问题分解、抽象和信息隐藏分别是什么意思吗,请举例说明
数据结构:
相互之间存在一种或多种特定关系的数据元素的集合;
“三要素”
逻辑结构:
存储结构(物理结构):
存储结构指数据结构在计算机中的表示(映像),包括数据元素的表示和关系的表示,是用计算机语言实现的“逻辑结构”。
补充:
在《大话数据结构》这本书中提到:“数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置”,请你回答以下问题:
1.为什么数据元素的存储关系不能反映其逻辑关系?
2.为什么不能反映就需要指针来存储?
数据的运算:
运算的定义是针对逻辑结构的,指出运算的功能;
运算的实现是针对存储结构的,指出运算的具体操作步骤。
算法
基本概念
定义:
解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
特性:
输入输出、有穷性、确定性和可行性。
设计要求:
正确性、可读性、健壮性、时间效率高和存储量低;
健壮性指算法也能对不合法数据做出恰当的处理。
算法效率的度量
时间复杂度:
详解:
空间复杂度
碎碎念
我的博客写得有些过于详细和冗余了,但实际上,我还未真正进入真正的备考过程,算作处在学习打基础阶段,详细啰嗦一点无可厚非,稳扎稳打,也方便后期的回溯;
此外,说到后期的回溯,为了方便我在任何时候都能快速回溯过往知识,我把那些思考和图书解释以图片的形式保留;
最后提一嘴,可以发现王道是有课后题的,至于课后题就选择考纲内的题做一做就行,可以出一个课后题博客,时间安排在整体知识复习完后,也算是一个检验和知识回溯。
参考文献
王道《数据结构》
程杰《大话数据结构》