【发布时间】:2011-07-31 14:08:49
【问题描述】:
我想找到从特定节点开始到特定节点结束的所有可能路径。我在java中尝试了深度优先搜索,但它不适用于我的情况。因为我的道路将朝着同一个方向。我不想遍历选定节点周围的所有其他节点。
我无法上传显示我想要的图片。无论如何,我会尽力解释。 节点间
0 1 2 3 4 5 6 7 8 9
例如我要查找的路径是从2到9。算法产生的可能路径应该是
2-7-9
2-4-6-8-9
2-4-6-9
对于节点 1,我的下一个可能只是节点 2,所以我不会尝试节点 0 和节点 -3。由于我设置了一些特殊规则,只有 node-2 适合 node-1。选择节点 2、节点 4 和节点 7 的下一个节点。对于 node-4,只有 node-6 是合适的。对于节点 6,节点 8 和节点 9 是合适的。另一方面,对于节点 7,下一个节点只能是 9。
所有这些路径都创建并保存在哈希图或列表结构中。
DFS 发现路径,例如,在 0-1 和 1-3 之间,这对我来说是不可接受的。由于算法的性质,它找到了最短路径。我想要根据规则的所有可能性,而不仅仅是最短的。规则不是问题,所以我不想让你感到困惑和无聊。解决这个问题的一般方法对我来说很重要。
提前致谢
【问题讨论】:
-
深度优先或广度优先都应该起作用——这完全取决于您输入参数的方式。
-
我更新了我的答案,但是如果没有帮助,我认为您需要提供更多信息。向我们展示您迄今为止提出的搜索的实现。