depth-first-search

    0热度

    1回答

    我试图使用DFS算法中创造ASCII迷宫(“#”代表墙壁和'自由空间),有作为启动左上角和退出右下角。问题是迷宫开始创建,然后被阻塞,因为所有的邻居已经被访问过。 我在左上角的开始,标志着对小区的访问,把一个“”(它代表了一种自由空间),那么我选择了随机小区的邻居和我做同样的。不过,我把它放在一个while循环中,我相信这不是个好主意。 这里我的DFS的尝试: int generation(t_

    -2热度

    2回答

    您能否让我知道以下DFS代码中的不正确内容。它给出了正确的结果AFAIK,但我不知道它什么时候会失败。 graph1 = { 'A' : ['B','S'], 'B' : ['A'], 'C' : ['D','E','F','S'], 'D' : ['C'], 'E' : ['C','H'], 'F' : ['C','G'],

    0热度

    1回答

    我有一个图的邻接列表表示,但它不是对称的,即,。如果节点A的边缘为B,则B与A的边缘不对。我想这将是一个方向图(二叉图)。 什么是检测节点中所有双向路径的好方法。我知道我可以使用DFS来检测从节点到图的另一个节点的路径。我想我正在寻找的是双向DFS,其中只考虑了双向边缘。 因此,一种方法是查看节点的邻居并找出这是否是双向关系。但是,为此,我需要遍历此相邻节点的所有直接连接,并查看第一个节点是否也是

    -1热度

    1回答

    如果我有像示出的对象: var data = { pages: [{ key: 1, pages: [{ key: 2, pages: [{ key: 3 }] }, { key: 4, pages: [{ key: 5 }] }] }] }; 所得阵列应该是:[3,5,2,4,1]

    0热度

    1回答

    我正在写一个小项目,允许您使用不同的算法生成随机迷宫,并使用不同的算法求解。我已经写深度优先搜索,A *搜索和递归backtracker对于一些算法,但我试图做一本正经 正如你可以看到它似乎产生迷宫的一部分,但不是其余。不同的颜色线是从我调整图像大小时起,不知道它为什么这样做。 我正在关注迷宫生成算法专用的维基百科页面的伪代码(https://en.wikipedia.org/wiki/Maze_

    0热度

    1回答

    我有一个赋值,其中有一个顶点数组,每个顶点都有一个具有相邻顶点的数组列表。目标是使用找到从第一个顶点到最后一个递归的路径。 一旦深度优先搜索算法到达目标顶点,它将其添加到解决方案路径(双链表),然后递归地将直接路径上的所有顶点添加回源顶点。 这里是我到目前为止的代码(而不是solutionPath.add我只是打印到控制台,看看有什么会被添加到链表与路径) private DoublyLinked

    1热度

    1回答

    我一直看到深度优先搜索的伪代码,这与我完全混淆了它与我的具体问题的关系。我试图确定一个'有向图'是否强连接。 如果我有2串(第一表示源,第二个代表该目的地)和一个可选数目的字典表示边缘权重: {'Austin': {'Houston': 300}, 'SanFrancisco': {'Albany': 1000}, 'NewYorkCity': { 'SanDiego': True }} 如何

    0热度

    1回答

    我有一个深度限制搜索算法,我在一个循环中运行几次,以便该算法可以像迭代深化搜索算法一样工作, 为什么代码仅在我明确调用方法时才返回所需结果,而当我在循环中调用它。 public class DepthLimited { public static void main(String[] args) { Graph graph = new Graph(); graph.addN

    0热度

    1回答

    我有一个对象集合是这样的: [ {key:8, parent:'none'}, {key:5, parent:8}, {key:3, parent:5}, {key:2, parent:3}, {key:4, parent:5}, {key:1, parent:4}, {key:3, parent:4}, {key:2, parent:3}, ] 所有可能的路径: 8->5-

    1热度

    1回答

    给定二叉树。我们必须remove an edge并将其分区为two trees这样的difference of the diameter of the two new trees is less than a specified value K。 我有一个天真的解决方案,挑选each edge并检查条件,如果通过删除该边缘我们可以获得解决方案或不(我们可以通过使用两个DFS/BFS并计算直径)。这