下载链接:YY-Z-Z/408Note (github.com)
资源免费分享,点个赞就好
也可以看看该专栏其它的文章
目录:
一、绪论
1.
数据结构的基本概念
1.1
基本概念和术语
1.2
数据结构三要素
2.
算法和算法评价
2.1
算法的基本概念
2.2
时间复杂度
2.3
空间复杂度
二、线性表
1.
线性表的基本概念
2.
顺序表
2.1
顺序表的定义
2.1.1
静态分配
2.1.2
动态分配
2.2
顺序表的插入
2.3
顺序表的删除
2.4
顺序表的查找
2.4.1
按位查找
2.4.2
按序查找
*
完整代码 顺序表静态存储
*
完整代码 顺序表动态存储
3.
链表
3.1
单链表
3.1.1
单链表的定义
3.1.2
单链表的插入
A.
按位序插入(带头结点)
B.
按位序插入(不带头结点)
C.
指定结点的后插操作
D.
指定结点的前插操作
3.1.3
单链表的删除
A.
按位序删除
B.
删除指定结点
3.1.4
单链表的查找
A.
按位查找
B.
按值查找
3.1.5
单链表的建立
A.
尾插法
B.
头插法
*
完整代码 单链表带头结点
*
完整代码 单链表不带头结点
3.2
双链表
3.2.1
双链表的定义
3.2.2
双链表的插入
3.2.3
双链表的删除
*
完整代码 双链表
3.3
循环链表
3.4
静态链表
*
完整代码 静态链表
3.5
顺序表和链表的对比
三、栈
&
队列
&
数组
1.
栈
1.1
栈的定义
1.2
顺序栈
1.2.1
初始化
1.2.2
进栈
1.2.3
出栈
1.2.4
读取栈顶元素
1.2.5
共享栈
*
完整代码 顺序栈
1.3
链栈
*
完整代码 链栈
2.
队列
2.1
队列的定义
2.2
队列的顺序存储
2.2.1
初始化
2.2.2
循环队列
2.2.3
入队
2.2.4
出队
2.2.5
获取队头元素
*
完整代码 顺序队列
2.3
队列的链式存储
*
完整代码 链队
2.4
双端队列
3.
栈的应用
3.1
括号匹配问题
3.2
表达式求值
3.2.1
三种算术表达式
3.2.2
后缀表达式
A.
中缀转后缀
B.
后缀表达式的计算
3.2.3
前缀表达式
A.
中缀转前缀
B.
前缀表达式的计算
3.2.4
中缀表达式的求值
3.3
递归中栈的应用
4.
队列的应用
5.
矩阵的压缩存储
5.1
普通矩阵的存储
5.2
对称矩阵的存储
5.3
三角矩阵的压缩存储
5.4
三对角矩阵的压缩存储
5.5
稀疏矩阵的压缩存储
四、串
1.
串的实现
1.1
串的定义
1.2
串的基本操作
1.2.1
求子串
1.2.2
比大小
1.2.3
定位操作
*
完整代码 串
2.
串的模式匹配
2.1
朴素模式匹配算法
2.2 KMP
算法
2.2.1
模式匹配
2.2.2
求
next
数组
*
完整代码
KMP
五、树
1.
树的基本概念
2.
二叉树的概念
2.1
二叉树定义和特性
2.2
二叉树性质
2.3
二叉树的存储
2.3.1
顺序存储
2.3.2
链式存储
3.
二叉树的遍历
3.1
先序遍历
3.2
中序遍历
3.3
后序遍历
3.4
层序遍历
3.5
由遍历序列构造二叉树
A.
前序
+
中序遍历序列
B.
后序
+
中序遍历序列
C.
层序
+
中序遍历序列
*
完整代码 二叉树
4.
线索二叉树
4.1
线索二叉树概念
4.2
中序线索二叉树
4.3
先序线索二叉树
4.4
后序线索二叉树
5.
树和森林
5.1
树的存储结构
5.2
树、森林、二叉树的转换
5.2.1
树转二叉树
5.2.2
森林转二叉树
5.2.3
二叉树转树
5.2.4
二叉树转森林
5.3
树和森林的遍历
5.3.1
树的先根遍历
5.3.2
树的后根遍历
5.3.3
树的层次遍历
5.3.4
森林的先序遍历
5.3.5
森林的中序遍历
6.
树和二叉树的应用
6.1
哈夫曼树
*
完整代码 哈夫曼树
6.2
并查集
6.2.1
并查集基础
6.2.2
并查集
Union
优化
6.2.3
并查集
Find
优化
*
完整代码 并查集
六、图
1.
图的基本概念
2.
图的存储
2.1
邻接矩阵
2.2
邻接表
2.3
十字链表
2.4
邻接多重表
2.5
四种存储方式的对比
3.
图的基本操作
3.1
基本操作
3.2
邻接表代码
3.3
邻接矩阵代码
4.
图的遍历
4.1
广度优先遍历
4.2
深度优先遍历
4.3
图的遍历与图的连通性
*
完整代码 邻接矩阵
*
完整代码 邻接表
5.
图的应用
5.1
最小生成树
5.1.1 Prim
算法
5.1.2 Kruskal
算法
5.1.3
最小生成树代码
A.
邻接矩阵
B.
邻接表
5.2
最短路径
5.2.1 BFS
5.2.2 Dijkstra
5.2.3 Floyd
5.2.4
三种算法的比较
5.3
有向无环图描述表达式
5.4
拓扑排序
5.5
关键路径
七、查找
1.
基本概念
2.
线性查找
2.1
顺序查找
2.2
折半查找
2.3
分块查找
3.
树形查找
3.1
二叉排序树
3.1.1
定义
3.1.2
查找操作
3.1.3
插入操作
3.1.4
删除操作
3.1.5
效率分析
*
完整代码 二叉排序树
3.2
平衡二叉树
3.2.1
定义
3.2.2
插入操作
A.
调整最小不平衡子树
LL
B.
调整最小不平衡子树
RR
C.
调整最小不平衡子树
LR
D.
调整最小不平衡树
RL
3.2.3
查找操作
3.2.4
删除操作
*
完整代码 平衡二叉树
3.3
红黑树
3.3.1
定义和性质
3.3.2
查找
3.3.3
插入
3.3.4
删除
*
完整代码 红黑树
4.B
树和
B+
树
4.1 B
树
4.1.1
定义
4.1.2
查找
4.1.3
插入
4.1.4
删除
*
完整代码
B
树
4.2 B+
树
5.
散列表
5.1
概念
5.2
构造
5.3
拉链法
5.4
开放定址法
八、排序
1.
插入排序
1.1
直接插入排序
1.2
折半插入排序
1.3
希尔排序
2.
交换排序
2.1
冒泡排序
2.2
快速排序
3.
选择排序
3.1
简单选择排序
3.2
堆
3.2.1
堆排序
3.2.2
堆插入删除
*
完善代码 堆
4.
归并、基数、计数排序
4.1
归并排序
4.2
基数排序
4.3
计数排序
5.
内部排序算法的比较
*
完整代码 排序
6.
外部排序
6.1
外部排序