类似于二叉树的三种遍历,我们可以基于遍历的模板做很多额外的事情,图的两种遍历,深度和广度模板同样也可以做很多额外的事情,这里举例利用深度优先遍历的模板来进行复制,深度优先中,我们先访问第一个结点,接着访问第一个邻接点,再访问邻节点的邻节点。。。。
class Solution:
# @param node, a undirected graph node
# @return a ...
分类:
编程语言 时间:
2014-07-18 23:11:00
阅读次数:
331
1 #include 2 #include 3 #include 4 #include 5 #include 6 7 typedef void (__stdcall *P_WALK_DIR_CALLBACK)(const std::string &In_strFilePath); 8 ...
分类:
编程语言 时间:
2014-07-16 19:31:47
阅读次数:
256
深入讲解了深度优先和广度优先算法的实现,有详细的图解实例以及代码实现,清晰易懂。
使用类的思想实现代码,面向对象分析。...
分类:
其他好文 时间:
2014-07-16 17:15:31
阅读次数:
265
代码参考网址:http://blog.csdn.net/slience_perseverance/article/details/6706354试题分析:本题是研究red and black的一个标题,实际上可以通过深度优先搜索的方式进行查找。前后左右的方格只要不是红色的就可以进行计数那么最后可以到...
分类:
其他好文 时间:
2014-07-16 13:59:02
阅读次数:
219
这一题主要用到了BFS广度优先算法 若马的当前位置为(x,y),那么下一步就有8种可能。(x+2 , y+1) , (x+1 , y+2 ) , (x-1 , y+2) , (x-2 , y+1)(x+2 , y -1) , (x+1 , y-2 ) , (x-1 , y-2) , (x-2 , y...
分类:
其他好文 时间:
2014-07-14 20:17:45
阅读次数:
296
问题
用递归方式遍历二叉树
思路说明
遍历二叉树的方法有广度优先和深度优先两类,下面阐述的是深度优先。
以下图的二叉树为例:
先定义三个符号标记:
访问结点本身(N)遍历该结点的左子树(L)遍历该结点的右子树(R)
有四种方式:
前序遍历(PreorderTraversal,NLR):先访问根结点,然后遍历其左右子树中序遍历(InorderT...
分类:
其他好文 时间:
2014-07-14 14:06:12
阅读次数:
217
天气越来越热,看书还得静得下心啊,今天继续图这一章,概念和算法众多,第一遍看以广度优先的形式为主,以后若要用到具体的算法再去翻“算法导论”吧。下面是学习内容和笔记。图(graph)1.图的存储结构邻接矩阵:顶点数组+边数组(二元);无向图的边数组为对称矩阵,有向图..
分类:
其他好文 时间:
2014-07-13 14:32:18
阅读次数:
214
题目链接:http://poj.org/problem?id=1979
题目大意:一个矩形的房间地板被分为w*h个小块,每一个小块不是红的就是黑的,你首先站在一个黑色小块上,你只能朝你的四个方向(上下左右)移动,且不能到达红色的小块上,问你最多能到达多少个小块。
很简单的dfs深度优先搜索
没搜索过一个格子,将该格子设置为红色,之后的搜索就不会再搜索到该格子,就不会造成重复,因为该题有很多数...
分类:
其他好文 时间:
2014-07-12 18:44:03
阅读次数:
169
文章主要是对于那些刚刚入门的搜索准备的,主要是深度优先搜索。一些对深搜稍稍有一些自己的看法...
分类:
其他好文 时间:
2014-07-11 08:07:30
阅读次数:
294
有一个无权的图G,使用某个顶点s作为输入参数,找出从s到其它顶点的最短路径。这样,只要计算包含在路径中的边数就可以了。比如,一个word ladder problem,一次只变换一个字母,找出从fool到sage的最短路径。可用的单词可以转化为一个图:首先寻找与fool距离为1的顶点:然后可以寻找距...
分类:
其他好文 时间:
2014-07-10 14:46:41
阅读次数:
239