完整代码:数据结构
数据结构三要素:逻辑结构、存储结构、运算
阿Q:首先要思考逻辑结构,然后根据逻辑结构确定在计算机的存储方式,再根据存储结构来编写运算。
基本操作无非为:创销增删改查
阿Q将以逻辑结构为H1、H2标题,存储结构(物理结构)为H3标题表示。
阿Q在看完课程及课本后自主整理(脱离课本后的思考及实现)
抽象数据类型定义方法(了解)
ADT 数据类型名{
数据对象D:该数据类型中存了什么元素集合。
数据关系R:数据对象中元素间关系是什么?(前驱?后继?...)
基本操作P
}ADT 数据类型名
考试大纲
线性结构
一般线性表
顺序表
存储类型表示
运算
链表
存储类型表示
运算
栈 – 操作受限的线性表
存储类型及操作
栈的应用
队列 – 操作受限的线性表
存储类型及操作
队列的应用
双端队列 – 队列的推广
串 – 内容受限的线性表
存储类型及表示
KMP算法
数组 – 线性表的推广
阿Q:数组一旦被定义,其维度和维界也就确定了(大白话:数组被定义,结构不可变)。
因此对数组不进行增删操作,改查是重点,那就建议顺序存储咯。
特殊矩阵的压缩存储
树形结构
二叉树
基本存储方式
操作核心 – 遍历
二叉遍历应用
扩展:各种遍历方式的实际应用
线索二叉树
树和森林
树的存储结构
扩展 – 树、森林和二叉树的转换
树和森林的遍历
哈夫曼树 – 应用
哈夫曼树概念及构造
存储类型表示及构造过程
哈夫曼编码
文件的编码与解码
并查集 (逻辑结构 – 集合)
堆 – 应用
图状结构
图
存储结构及建图实现
邻接矩阵
一道真题给阿Q的启发:邻接矩阵的幂次与路径计数
邻接表
十字链表
邻接多重表
操作核心 – 遍历
深度优先遍历 DFS
广度优先遍历 BFS
图的基本应用(重难点)
连通网
无向网 – 最小(代价)生成树 Prim(普里姆)算法 & Kruskal(克鲁斯卡尔)算法
最短路径 Dijkstra算法 – 单源最短路径 & Floyd算法 – 各顶点间最短路径
有向无环图
AOV网 – 括扑排序
AOE网 – 关键路径
算法
查找表
线性结构
顺序查找
折半查找
分块查找
树形结构
二叉排序树
二叉平衡树
红黑树
B树、B+树
散列结构
散列表
排序
内部排序
插入排序
直接插入排序
折半插入排序
希尔排序
交换排序
冒泡排序
快速排序
选择排序
简单选择排序
堆排序
归并排序
基数排序
外部排序 – 多路归并排序
递归转非递归(不在统考内,阿Q有兴趣)
实战
参考视频及资料
课本为王道考研数据结构