图的遍历方式当中DFS和BFS是两种主要的遍历方式。DFS主要是使用递归思想来实现的,BFS主要是使用队列来保存下面的节点。BFS的一个优势是不是非递归形式,所以栈溢出的可能性很小,相反DFS在这方面的限制比较大。因此,如何将DFS改为非递归形式意义重大。如何将DFS变为非递归形式呢?实际上,前面带...
分类:
编程语言 时间:
2015-08-27 22:56:08
阅读次数:
223
深搜算法对于程序员来讲是必会的基础,不仅要会,更要熟练。ACM竞赛中,深搜也牢牢占据着很重要的一部分。本文用显式栈(非递归)实现了图的深度优先遍历,希望大家可以相互学习。 栈实现的基本思路是将一个节点所有未被访问的“邻居”(即“一层邻居节点”)踹入栈中“待用”,然后围绕顶部节点猛攻,每个节点被...
分类:
编程语言 时间:
2015-02-20 15:15:42
阅读次数:
247
最近《算法导论》快看完图论部分了,很多有关图的算法都彻底搞懂并加以证明了。现在主要是将理解的思想用到题目中来加强下。这个题目主要是判断一下整个图是否是强连通的,很简单,可以用tarjan也可以用kosaraju。因为不要求找出所有的强连通分量,所以这里只是借用了kosaraju的思想,然后本题的解答简化的异常简单。
迷宫城堡
Time Limit: 2000/1000 MS (...
分类:
其他好文 时间:
2015-01-06 13:53:12
阅读次数:
142
dfs 栈溢出,bfs超时,用dfs非递归就不溢出了,前后写了1一个星期class node{ int i; int j; public node(int i1,int j1) { i=i1; j=j1; ...
分类:
其他好文 时间:
2014-07-20 22:32:17
阅读次数:
244