图形包含'n'个节点和'n-1'个边缘,因此,任意两个节点之间的唯一路径。
好的,所以我知道如何在图形中找到位于路径上的顶点(给定:源,目标)。可以使用DFS或BFS轻松完成。
示例:
输入
条目列表,每个条目包含源和目标顶点
的输出
条目列表,每个条目包含与输入条目对应的“路径上的顶点”。
Source Destination Vertices on path
5 4 5 4
3 5 3 4 5
1 3 1 5 4 3
3 5 3 4 5
5 4 5 4
我目前的解决方案
目前,我在每个给定路径上运行迭代DFS,并找到位于该路径上的顶点。
问题/问题
当给定的节点数和路径数不大(~100,000)时,在每个给定路径(对于所有路径)上找到顶点是耗时的任务。(对于具有100,000个节点的图,在每个路径上运行DFS为100,000个路径)。我想知道解决这个问题的更好方法。我可以使用什么数据结构或算法来代替我当前的解决方案。有时候,我也遇到了StackOverflow错误,我认为这是由于深度递归造成的。