当前位置: 首页 > 知识库问答 >
问题:

DFS:打印所有完整路径

秋兴思
2023-03-14

下面的函数打印所有的子路径。是否可以只显示完整的路径,即A->B->C(包含以下所需的输出)。

findPaths(List<Integer>[] adjacencyList, int u, List<String> path) throws IOException {
        print(path+" "+path.size()+ "\n");
        for (Integer v : adjacencyList[u]) {
            path.add(mapIndexToCode.get(v));
            findPaths(adjacencyList, v, path, writer);
            path.remove(mapIndexToCode.get(v));
        }
    }
OUTPUT
A 1
A B 2
A B C 3

E 1
E F 2
REQUIRED OUTPUT
A B C 3

E F 2

共有1个答案

吴单鹗
2023-03-14

您可以在打印前设置一个条件,以检查您是否位于路径的末尾:

findPaths(List<Integer>[] adjacencyList, int u, List<String> path) throws IOException {
        if (adjacencyList[u].isEmpty()) {
           print(path+" "+path.size()+ "\n");
        }
        else {
        for (Integer v : adjacencyList[u]) {
            path.add(mapIndexToCode.get(v));
            findPaths(adjacencyList, v, path, writer);
            path.remove(mapIndexToCode.get(v));
        }
        }
    }
 类似资料:
  • 我试图打印二叉树的所有路径(根到叶的路径),但没有效果。 我的策略是使用递归,基本情况是树为None或树节点为leaf return,否则,遍历树的左侧和右侧。 但我找不到同时保留左右树的方法。

  • 我正在尝试生成完整的路径列表,而不是优化的。使用下面的示例可以更好地解释。 上面代码创建了一个带有边的图和和 我想要的只是从中提取所有路径。 我试过: 我想要的只是: 是否有任何来自的预先存在的方法可以使用?如果没有,有什么方法可以编写一个最优的方法来完成这项工作? 注意:我的问题仅限于给出的例子。再也不可能有拐角案件了。 注2:为简化起见,生成数据。在我的例子中,edges列表来自数据集。假设给

  • 我有以下Java代码,可以在图中找到从一个节点到另一个节点的路径,如何修改它,以便显示所有可能的路径。这里只显示了一条路径,它是一个循环? 输出:路径:[1、2、3、4、1] 对于节点1和4之间的路径,正确的输出应该是: 第一条路径:1- 第二条路径:1- 代码:

  • APIService: 在活动调用API中:

  • 问题内容: 我想读取捕获的异常的完整堆栈跟踪。 例如: 我想阅读“ … 23更多”,以了解异常的来源。 问题答案: 答案很简单,这些行已经在stacktrace中了:) 基本上,以下情况正在发生:

  • 问题内容: 早上好! 我正在开发一种算法,以查找无向图而不是加权图中的所有路径。我目前正在使用具有回溯功能的DFS算法来尝试执行此操作。这是我当前的代码: 该程序在其输入上接收整数。第一个是节点数,第二个是链接数,第三个是开始节点和结束音,它们是相同的。之后的所有整数表示节点之间的连接。 问题在于,该算法仅查找一次访问单个节点的所有路径。我想要的是仅查找一次访问每个连接的所有路径的算法。关于我该怎