0

我正在学习C语言。我想在从 A 到 B 的图中找到最长的非循环路径。

例如,我有一个这样的图表:

             0
             |
             1 
           /   \
          2 --- 3
          |    / \
          5---6---4

现在我想编写一个函数,它可以找到从节点 A 到节点 B 的最长非循环路径。

input: longestPath(node A, node B) output: the longest length is x, node_a -> ... -> node_b

例如:

input: longestPath(0, 6) output: the longest length is 6, 0 -> 1 -> 2 -> 3 -> 4 -> 6 (输出答案可能不是唯一的,而是正确答案之一)

但我不知道如何实现一个合适的算法来找到它。

我应该使用 BFS 还是 DFS 来查找所有可能的路径并进行比较?(但似乎很慢)

你能给我一些建议吗?谢谢!

4

0 回答 0