阅读:0       作者:解学武

数据结构与算法教程(非常详细)

数据结构与算法教程封面这套入门教程不仅讲解了基本的数据结构,还讲解了经典的算法,并把它们付诸实践,解决生活中的实际问题,例如停车场管理系统、迷宫游戏、字符过滤系统等。

本教程最大的特点是通俗易懂,深入浅出,摒弃教条主义,以“生动有趣”的笔风来讲解每个知识点。

数据结构研究的是数据的存储方式,算法研究的是解决问题的思路。数据结构与算法是相辅相成的,所以本教程把它们融合在一起讲解。

阅读本教程需要具备C语言基础,不了解C语言的读者请猛击《C语言入门教程》。
第1章 数据结构概述
1.数据结构是什么
2.数据的逻辑结构和存储结构(物理结构)
3.数据结构到底学什么?
4.时间复杂度和空间复杂度
5.数据结构和算法不是一码事!
6.数据结构如何自学,效率更高?
7.数学不好,对学数据结构有影响吗?
8.学好数据结构,你已然超越了99%的程序员!
第2章 线性表
1.什么是线性表
2.顺序表(顺序存储结构)
3.顺序表的基本操作
4.顺序表与数组的关系和区别
5.链表(单链表)是什么
6.链表的基本操作
7.顺序表和链表有哪些不同?
8.4种算法,实现单链表的反转!
9.如何判断两个单链表相交?
10.存储结构和存取结构,完全不是一码事!
11.静态链表:更高级的线性表
12.静态链表基本操作
13.静态链表和动态链表的区别
14.双向链表是什么
15.双向链表的基本操作
16.双向链表实现贪吃蛇游戏(含源码)
17.循环链表实现约瑟夫环
18.双向循环链表(C语言)
19.如何判断链表中有环?
20.[项目实践]俄罗斯轮盘赌小游戏
第3章 栈和队列
1.栈是什么
2.顺序栈的基本操作
3.链栈的基本操作
4.[项目实践]进制转换器
5.[项目实践]括号匹配
6.如何用栈结构求表达式的值?
7.队列是什么
8.顺序队列及基本操作
9.循环队列:更高级的顺序队列
10.链式队列及基本操作
11.为什么说栈和队列是线性存储结构?
12.[项目实践]停车场管理系统
13.[项目实践]扑克牌小游戏
第4章 字符串
1.串存储结构是什么
2.串的定长顺序存储结构
3.串的堆分配存储结构
4.串的块链存储
5.BF算法(串模式匹配算法)
6.KMP算法(快速模式匹配算法)
7.继续优化KMP算法,匹配效率有质的提升!
8.为什么KMP算法的主串指针不用回退?
9.[项目实践]字符过滤系统
第5章 数组和广义表
1.数组存储结构是什么
2.数组的顺序存储结构
3.矩阵(稀疏矩阵)压缩存储
4.三元组顺序表存储稀疏矩阵
5.行逻辑链接的顺序表存储稀疏矩阵
6.十字链表法存储稀疏矩阵
7.稀疏矩阵的转置算法
8.稀疏矩阵的快速转置算法
9.行逻辑链接的顺序表实现矩阵乘法
10.十字链表实现矩阵加法
11.什么是广义表
12.广义表的存储结构
13.广义表的深度和长度
14.怎样复制一个广义表?
第6章 树
1.树存储结构是什么
2.什么是二叉树
3.二叉树的顺序存储结构
4.二叉树的链式存储结构
5.浅谈二叉树的4种遍历算法
6.二叉树先序遍历(递归与非递归)
7.二叉树中序遍历(递归和非递归)
8.二叉树后序遍历(递归与非递归)
9.二叉树层次遍历
10.线索二叉树:遍历效率更高的二叉树
11.双向线索二叉树:更高级的线索二叉树
12.树的双亲表示法
13.树的孩子表示法
14.树的孩子兄弟表示法
15.孩子兄弟表示法将森林转变成二叉树
16.哈夫曼树(最优二叉树)详解
17.哈夫曼编码(包含C语言实现代码)
18.回溯算法
19.回溯算法解决八皇后问题
20.n个结点最多可以构建多少棵树?
21.[项目实践]移动迷宫小游戏(初级版)
第7章 图
1.图存储结构是什么
2.什么是连通图
3.什么是生成树
4.图的顺序存储结构
5.图的邻接表存储结构
6.图的十字链表存储结构
7.图的邻接多重表存储结构
8.深度优先搜索(DFS)算法
9.广度优先搜索(BFS)算法
10.深度优先生成树和森林
11.广度优先生成树和森林
12.最小生成树是什么
13.Prim算法求最小生成树
14.Kruskal算法求最小生成树
15.重连通图是什么
16.拓扑排序算法精讲
17.寻找AOE网中的关键路径
18.最短路径是什么
19.迪杰斯特拉算法求最短路径
20.弗洛伊德算法求最短路径
21.[项目实践]移动迷宫小游戏(升级版)
第8章 查找算法
1.查找表是什么
2.顺序查找算法
3.二分查找(折半查找)算法
4.分块查找算法(索引顺序查找)
5.静态树表查找算法
6.二叉排序树(二叉查找树)
7.平衡二叉树(AVL树)
8.红黑树算法(更高级的二叉查找树)
9.B-树及其基本操作
10.B+树及插入和删除操作
11.键树查找法(双链树和字典树)
12.什么是哈希表(散列表)
13.哈希查找算法
第9章 排序算法
1.插入排序算法
2.折半插入排序算法
3.2-路插入排序算法
4.表插入排序算法
5.希尔排序算法
6.冒泡排序算法
7.快速排序算法(QSort,快排)
8.选择排序算法
9.归并排序算法
10.基数排序
11.内部排序算法优势分析
第10章 外部排序算法
1.什么是外部排序算法
2.多路平衡归并排序算法
3.置换选择排序算法
4.最佳归并树
第11章 动态内存管理
1.动态内存管理
2.边界标识法
3.伙伴系统
4.系统垃圾回收机制
5.内存紧缩(内存碎片化处理)