大家好, 欢迎大家来到我在慕课网上的实战课程《玩儿转图论算法》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。课程全部使用Java语言讲解,课程代码仓暂时只提供Java语言版本。
大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)
个人网站:liuyubobobo.com [废弃重整中...]
电子邮件:[email protected]
微博: 刘宇波bobo http://weibo.com/liuyubobobo
知乎: 刘宇波 http://www.zhihu.com/people/liuyubobobo
知乎专栏:是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo
个人公众号:是不是很酷:)
-
每一章后面有补充代码的部分。课程本身已经独立成体系,补充内容只是额外拓展,不影响课程整体的学习。对于课程整体学习,可以忽略。建议先完成课程必要部分学习,再酌情研究补充内容。
-
对于补充代码部分的内容,大多是课程中提及的拓展内容。对于这部分内容,我会不定期更新代码,但不保证时间。放在课程目录中,主要是供大家拓展思路使用。大家也可以理解成是思考练习,可以自行编写代码练习完成补充内容,相信是很好的编程锻炼:)当然,有任何问题可以在问答区进行提问。
-
课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。
-
请不要使用github,微信,QQ,邮件进行答疑。 请使用课程问答区进行答疑。谢谢!
本课程前置课程为我的《玩转数据结构》,建议学习完《玩转数据结构》再学习本课程,效果更好:)
《玩转数据结构》课程, 代码仓: Play-with-Data-Structures
-
我的LeetCode题解代码仓:Play Leetcode (注:以C++实现为主)
-
LeetCode Explore题解代码仓:Play Leetcode Explore (注:以C++实现为主)
- Leetcode Explore 是 Leetcode 在2017年底上线的新模块,分门别类地整理了Leetcode上的问题。如果刷Leetcode一时不知从哪里下手,可以从Leetcode Explore为指引开始:)
第一章 欢迎大家学习《玩儿图论算法》 | [无代码] |
---|---|
1-1 欢迎大家学习《玩儿转图论算法》 | [无代码] |
1-2 课程学习的更多说明 | [无代码] |
1-3 课程编程环境的搭建 | [无代码] |
第二章 图论基础 | 章节Java源码 |
2-1 图的分类 | [无代码] |
2-2 图的基本概念 | [无代码] |
2-3 图的基本表示:邻接矩阵 | Java |
2-4 更多图的方法 | Java |
2-5 图的基本表示:邻接表 | [无代码] |
2-6 邻接表的实现 | Java |
2-7 邻接表的问题和改进 | [无代码] |
2-8 实现邻接表的改进 | Java |
2-9 图的基本表示的比较 | Java |
第三章 图的深度优先遍历 | 章节Java源码 |
3-1 数据结构遍历的意义 | [无代码] |
3-2 从树的深度优先遍历到图的深度优先遍历 | [无代码] |
3-3 DFS逻辑的微观解读 | [无代码] |
3-4 实现图的深度优先遍历 | Java |
3-5 图的深度优先遍历的改进 | Java |
3-6 更多关于图的深度优先遍历 | [无代码] |
3-7 【文字】邻接矩阵的深度优先遍历 | [见慕课网代码仓] |
3-8 【文字】创建统一的图接口 | [见慕课网代码仓] |
3-9 【文字】深度优先遍历的非递归实现 | [见慕课网代码仓] |
第四章 图的深度优先遍历的应用 | 章节Java源码 |
4-1 图的联通分量的个数 | Java |
4-2 DFS 中的一个小技巧 | Java |
4-3 求解联通分量 | Java |
4-4 单源路径问题 | [无代码] |
4-5 单源路径问题的编程实现 | Java |
4-6 【文字】单源路径问题的小优化 | [见慕课网代码仓] |
4-7 【文字】所有点对路径问题 | [见慕课网代码仓] |
4-8 提前结束递归:路径问题的另一个优化 | Java |
4-9 无向图的环检测问题 | Java |
4-10 二分图检测 | [无] |
4-11 实现二分图检测 | Java |
4-12 本章小结和更多拓展 | [无] |
第五章 图的广度优先遍历 | 章节Java源码 |
5-1 从树的广度优先遍历到图的广度优先遍历 | [无] |
5-2 图的 BFS 的实现 | Java |
5-3 使用 BFS 求解路径问题 | Java |
5-4 【文字】更多关于使用 BFS 求解路径问题 | [见慕课网代码仓] |
5-5 【文字】使用 BFS 求解联通分量问题 | [见慕课网代码仓] |
5-6 【文字】使用 BFS 求解环检测问题 | [见慕课网代码仓] |
5-7 【文字】使用 BFS 求解二分图检测问题 | [见慕课网代码仓] |
5-8 BFS 的重要性质 | [无] |
5-9 无权图的最短路径 | Java |
5-10 DFS 和 BFS 的神奇联系,与本章小结 | [无] |
第六章 图论问题建模和 Floodfill | 章节Java源码 |
6-1 算法笔试中图论问题的书写 | Java |
6-2 图的建模和二维数组中的小节 | 无 |
6-3 实现图的建模问题 | Java |
6-4 Flood Fill | Java |
6-5 更多关于 Flood Fill 的问题 | [无] |
6-6 【文字】联通性和并查集 | [见慕课网代码仓] |
6-7 【文字】在 Leetcode 上的更多优化 | [见慕课网代码仓] |
第七章 人工智能和图论搜索 | 章节Java源码 |
7-1 算法笔试中的 BFS 问题 | Java |
7-2 图论建模的核心:状态表达 | [无] |
7-3 实现转盘锁问题 | Java |
7-4 一道智力题 | Java |
7-5 代码实现一道智力题 | Java |
7-6 基于搜索的人工智能 | Java |
7-7 灵活使用 BFS | Java |
7-8 更多 Leetcode 上的 DFS 和 BFS 问题 | [无] |
第八章 图的遍历树,桥和割点 | [更新中,敬请期待] |
第九章 欧拉路径和哈密尔顿路径 | [更新中,敬请期待] |
第十章 最小生成树 | [更新中,敬请期待] |
第十一章 有向图算法 | [更新中,敬请期待] |
第十二章 最短路径 | [更新中,敬请期待] |
第十三章 网络流 | [更新中,敬请期待] |
第十四章 匹配算法 | [更新中,敬请期待] |
第十五章 更广阔的图论世界 | [更新中,敬请期待] |
课程正在更新中,敬请期待:)
课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。
大家加油!:)