首页 > TAG信息列表 > depth-first-search

Java中的递归搜索

所以我一直在为游戏设计一个程序.我创建了一个小板供用户使用,但是问题是我不知道如何递归检查该单词是否在板上.我希望能够检查输入的单词是否确实在黑板上并且有效.我的意思是,单词的字母必须彼此相邻.对于那些玩过惊奇的人,您会明白我的意思.我要做的就是检查单词是否在板上. 这

java-对后边缘进行运算以获取有向图中的循环数

我一直在编写代码,以在有向图中获得所有可能的周期. Here是一种跟踪后沿的实现,只要找到一个后沿,它就会返回true,即检测到一个循环.我将其扩展到以下内容:计算一棵树中所有可能的后边缘,后边缘的数量应给出循环数.不知道这是否正确.使用此方法,我实现了以下操作:下面的count变量没有

C#图形遍历-任意两个节点之间的跟踪路径

寻找一种很好的方法来跟踪两个节点之间的广度优先遍历,而又不了解任何图形.相对于“深度优先”(如果没有平移,您可以丢弃路径)在遍历期间可能有很多“开放”的可能性.解决方法:天真的方法是用源节点作为根,其所有连接作为其子节点来构建树.根据您拥有的空间量,您可能需要消除循环的

图算法的PHP实现

我不是PHP程序员,但是我需要编写一个脚本,并且想在PHP中准备一些DFS算法.我认为所有编程语言都应该至少具有一些用于处理图形的库,因此我不必强迫自己实现它. 有经验的PHP程序员可以告诉我,在哪里可以找到一些免费的库来执行DFS?解决方法:http://mirkules.com/blog/?p=20

这个python代码是否采用深度优先搜索(DFS)来查找所有路径?

此代码在python official essays on graph theory中给出.这是代码: def find_all_paths(graph, start, end, path=[]): path = path + [start] if start == end: return [path] if not graph.has_key(start): return [] p

c – 使用DFS进行拓扑排序而不进行递归

我知道进行拓扑排序的常用方法是使用DFS进行递归.但是如何使用stack< int>来完成它呢?而不是递归?我需要获得逆转后的订单,但我有点卡住了: 该图是矢量< vector< int>. &GT邻接名单 以下是我想用于拓扑排序的DFS bool visited[MAX]={0}; stack<int> dfs, postOrder; vector<int> newV

我的DFS树的意外结果(C)

我已经解决了这个问题!我发现如果我必须使用vector< Node *>孩子;.但我不太确定原因,有人可以告诉我为什么吗?谢谢:) 题: 我使用test.cpp生成一个树结构,如: (ROOT-> children).size()的结果是2,因为root有两个子节点. ((ROOT-> children; [0] .children).size()的结果应为2,因为root的

在python中看似简单的拓扑排序实现

从here中提取我们得到了一个最小的迭代dfs例程,我把它称为最小,因为你很难进一步简化代码: def iterative_dfs(graph, start, path=[]): q = [start] while q: v = q.pop(0) if v not in path: path = path + [v] q = graph[v] +

c – dfs算法使用队列?

我在互联网上看到了DFS算法 #include<iostream> #include<queue> #define MAX 100 using namespace std; queue<int> myQueue; int G[MAX][MAX]; int visit[MAX]; int V, E; void dfs(int s) { int i, j, node; memset(visit, 0, sizeof(visit));

简单的Java 2d阵列迷宫样本

我正在工作或了解如何创建一个简单的java 2d迷宫,它应该如下所示: int [][] maze = { {1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,1,0,1,0,1,0,0,0,0,0,1}, {1,0,1,0,0,0,1,0,1,1,1,0,1}, {1,0,0,0,1,1,1,0,0,0,0,0,1}, {1,0,1,0,0,0,0,0,1,1,1,0,1}, {1,0,1,0,1,1,1,0,1,0,0,0

c – 基于堆栈的迷宫算法背后的逻辑

我是C编程的新手,我正在研究一种迷宫求解算法.我需要使用显式堆栈来跟踪完成的移动,没有递归. 基本上我负责“解算器”算法,我可以查看移动是否可用或阻止并执行此操作,或者我可以撤消移动.这些动作是左,右和前进.已经有代码负责绘制和更新迷宫. 我可以使用的只是帮助理解穿越迷宫

C Boost图库: – 为DFS指定根节点

在有向图上使用标准, std::vector<size_type> dtime(N); std::vector<size_type> ftime(N); size_type t = 0; dfs_time_visitor<size_type*> vis(&dtime[0], &ftime[0], t); depth_first_search(graph, visitor(vis)); 似乎总是从节点0启动dfs. 如何告诉算法从已知的“根节点”

python – 为什么我的深度优先搜索实现被破坏了

我一直在尝试实现深度优先搜索的不同方法.我找到了一些工作方法,但它们涉及一些相当繁琐的字典工作.我使用列表开发了一个新想法,但此实现返回的操作与所需的结果不匹配.我会尝试尽可能清楚地评论代码: start = problem.getStartState() ## returns an (x, y) tuple chi

python – 在大图上运行DFS

我试图在实现Kosaraju算法的大图中找到强连通组件.它需要在图形上反向运行DFS,然后转发.如果您感兴趣,此图表的边缘列表如下:https://dl.dropboxusercontent.com/u/28024296/SCC.txt.tar.gz 我不能在Python中递归地实现它,它超过了它的递归限制并且如果我增加它们会崩溃.我正在尝试

java – 在neo4j图上做一个DFS

我有一个具有以下结构的数据库. 属性节点属于该类型 create (A:Property {value:"abc"}) 如何进行dfs以便能够打印图中的所有值.顺序A-> B-> E-> F-> C-> G-> H-> ; D-&GT I-&GTĴ 关系r是向下的方向(单向)没有属性.我试过这个link,但看起来很复杂. 是否有更简单的方法在已有的N

JavaScript深度优先搜索

我试图在JavaScript中实现DFS,但我遇到了一些问题.这是我的算法类: "use strict"; define([], function () { return function () { var that = this; this.search = function (searchFor, node) { if (searchFor === node.getValue()) {

java – 广度优先搜索不返回最短路径

我正在尝试使用Java的广度优先搜索算法.考虑到10×10网格,我试图找到最后一个单元9×9(网格从0,0开始).到达9×9时,它已遍历网格中的所有单元格.我听说BFS会给我最短的路径.但实际上它给了我最长的路径. >请告诉我这是否是预期的行为? >如果这是BFS的工作方式,那么获得到9×9单元的

java – 检查无向图中的奇数周期

我回来了另一个类似的问题.我目前正在研究一个Java程序,它将检查图形是否是2可着色的,即它是否包含没有奇数周期(奇数长度的周期).假设整个算法在O(V E)时间内运行(V是所有顶点,E是图中的所有边).我当前的算法执行深度优先搜索,记录它所采用的路径中的所有顶点,然后查找后边缘,然后