我正在学习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 来查找所有可能的路径并进行比较?(但似乎很慢)
你能给我一些建议吗?谢谢!