breadth-first-search

    0热度

    3回答

    我有一个带childs和父节点的经典Tree结构。现在,我想收集的最低水平(即以相反的顺序)开始通过深度分组的所有节点,就像这样: nodes[ ["A4"], ["A3","B3"], ["A2","B2","C2"], ["A1","B1","C1"], ["ROOT"] ]; 虽然使用递归遍历方法是很容易获得深度的水平,我不知道是否有任

    2热度

    2回答

    我工作了下面的问题,我认为我有它主要是解决最短路径,但是一些测试用例执行失败: 你有空间站的部分地图,每个从监狱 出口开始,并在逃生舱的门口结束。该地图以0和1的矩阵表示为 ,其中0是可通过的空间并且1是不通过的墙壁。监狱外的门位于左上方(0,0) ,进入逃生舱的门位于右下角(w-1,h-1)。 编写一个函数答案(地图),它可以生成从监狱门到逃生吊舱的最短路径长度,您可以在此处移除一堵墙作为重建计

    0热度

    2回答

    BFS的复杂度被认为是线性的,即O(V + E),但是有向完整图中边的总数是V *(V-1),它是图形。那么BFS会花费O(V^2)时间遍历完整的图表吗?

    0热度

    2回答

    找到给定组的所有广度优先组合的最有效方法是什么?例如: 例如: 给定一组元素{1,2,4},输出结果应该如下(也是按照这个顺序 - 不一定是数值,但是元素值 - 首先应该输出层1一个元件),那么层2(两个元件),最后层3(三种元素)): 1 2 4 1 2 1 4 2 4 1 2 4

    0热度

    1回答

    我们应该使用哪种方法查找所有断开连接的图形,以及为什么? 作为BFS和DFS遍历两者都遍历方法和由多个遍历。我们可以找到所有断开的组件。 而另一种方法可以是不相交集合用于kruskal(MST)中查找断开的组件。

    -3热度

    1回答

    我试图在C++中实现BFS,函数应该像这样工作:以一个顶点为参数的图形&,然后创建两个向量,其中一个用于存储与参数顶点相邻的顶点,然后检查那些顶点,如果其中一个未被访问,则获取它的邻接点并将它们添加到向量中,然后顶点应被标记为VISITED并打印;我写了这段代码,但它输出了任何内容。注:我确保其他功能&像图这样的数据结构正在工作,问题在于BFS功能,我希望你们中的一些人能帮我解决它。 #inclu

    1热度

    2回答

    所以我正在构建这个树,它有1个*节点,其中每个节点都有一个列表,它们本身可以有1 *个节点。 我可以构建的树的前三个级别很好,但如果我不编码所有级别都很简单,那么它不会工作更多。解决方案当然是使用某种递归方法和BFS。 基本上,在我的TreeBuilder类中,我希望能够调用tree.getNodesAtDepth(depth))并获取所有处于该深度的节点的列表。问题是我不明白我如何实施getNo

    0热度

    2回答

    只是练习并注意到它很容易序列化(通过深度优先搜索遍历)一个bst并反序列化到树中。但是,如果序列化是通过面包优先搜索遍历完成的,我很难对其进行反序列化。 例如,给定输入:5,2,11,N,3,7,19,N,N,6,8,N,N,N,N,N,N 寻找输出 - 5 / \ 2 11 /\ /\ N 3 7 19 /\ /\ 6 8 N N /\/

    1热度

    1回答

    我想返回图的两个顶点之间的最短路径。我写了一段代码来查找breadthFirstSearch,但我不知道如何修改它以使其返回最短路径。下面是我的广度FirstSearch函数 private void breadthFirstSearch(T start,T end){ Queue<T> queue = new LinkedList<>(); Set<T> visited =

    -1热度

    1回答

    在这段代码中,我只想访问节点并计算边缘。第一次看起来不错,但是当我通过新节点和边缘时,它会给出0计数。我发现对于下一个节点和边缘来说情况并非如此。这是我第一次实施BFS。 #include<bits/stdc++.h> using namespace std; vector<int>v[1000]; int level[1000]; bool vis[1000]; void bfs(in