前言
数据结构作为六七年前甚至小学就有接触过的知识,如今再次与其狭路相逢。不同于之前所有数据结构知识的学习,考研的数据结构会明显偏向于理论知识而非实践应用,故特此另开一篇用以记录学习历程。
目录
第一章 绪论
第二章 线性表
第三章 栈和队列
第四章 串
第五章 树与二叉树
第六章 图
第七章 查找
第八章 排序
数据结构考研笔记
第一章 绪论
1.1 数据结构的基本概念
1.1.1 基本概念和术语
数据是信息的载体;
数据元素是数据的基本单位,由若干个数据项(最小单位)组成;
数据对象是具有相同性质的数据元素的集合;
数据类型分为原子类型、结构类型、抽象数据类型;
数据结构是存在某种关系的数据元素的集合,包括逻辑结构、存储结构与数据的运算。
1.1.2 数据结构三要素
逻辑结构分为线性结构与非线性结构;
存储结构又称为物理结构,主要有顺序存储、链式存储、索引存储和散列存储;
数据的运算包括运算的定义(逻辑结构,功能)与实现(存储结构,操作步骤)。
1.2 算法和算法评价
1.2.1 算法的基本概念
算法的 5 个重要特性:有穷性、确定性、可行性、输入与输出;
一个好的算法的目标:正确性、可读性、鲁棒性、效率与低存储量需求。
1.2.2 算法效率的度量
时间复杂度指算法所有语句被重复执行次数总和的数量级。
常见时间复杂度比较:
O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
(log 表示以 2 为底的对数)
空间复杂度指算法耗费存储空间的数量级。
本章不在考纲范围内,但