摘要: dijkstra和Prim很像,区别在于Prim在找到离MST最近的结点后把它加入MST并更新与此结点相邻的结点离MST的最短距离;而dijsktra中,找到当前离起点最近的结点后,更新与它相邻的结点距离起点的最短距离和最短路径。 代码如下: 阅读全文
posted @ 2017-07-04 17:50 NoviScl 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 对于一个边带有权值的图,我们可以求它的最小生成树(Minimum Spanning Tree)。通常有两种算法,Prim和Kruskal。 Prim算法的思路是每次找到距离当前生成树最近的一个结点,并将它连到当前的生成树。 代码如下: Kruskal的思路是每次找到剩余的权值最小的边,如果这条边与当 阅读全文
posted @ 2017-07-04 17:33 NoviScl 阅读(214) 评论(0) 推荐(0) 编辑
摘要: floodfill的基本思路就是找到所有连在一起的结点并染成相同的颜色,这样就可以通过颜色区分各个连通分量。具体来说,一开始把所有结点都设成相同的颜色,然后从第一个结点往后遍历,遇到还未被染成其他色的结点,表明这个结点不属于任何已知的连通分量,所以给它一个新颜色,并用bfs/dfs给与其相连的所有结 阅读全文
posted @ 2017-07-04 17:16 NoviScl 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目来自于记蒜客数据结构课,类型差不多,都是用bfs求最短路(注意是不加权的最短路,加权的情况后面的文章会讲)。 代码如下: 阅读全文
posted @ 2017-07-04 17:07 NoviScl 阅读(945) 评论(0) 推荐(0) 编辑