【发布时间】:2015-03-11 16:37:39
【问题描述】:
我有一个节点的邻接图(在双向图中),我想知道如何打印从某个长度的根开始的所有可能路径。结果,允许重复。 例如,给定下图
1
/ \
2 3
/ \
4 5
用邻接表表示:
1 [2 3]
2 [1 4]
3 [1 5]
4 [2]
5 [3]
如何从长度为 4 的根节点返回所有路径的集合?我正在寻找使用 Java,但只是一个算法解决方案会有很大帮助。可能路径的一些示例。树不一定是二元的:
1 -> 2 -> 1 -> 3
1 -> 2 -> 4 -> 2
1 -> 3 -> 5 -> 3
1 -> 3 -> 1 -> 3
1 -> 2 -> 1 -> 2
1 -> 3 -> 1 -> 2
这将表示为:
[1213,
1242,
1353,
1313,
1212,
1312]
我一直在尝试应用深度优先搜索算法的一些变体,但我不确定如何跟踪节点。
【问题讨论】:
-
返回和打印有很大的不同,尤其是涉及到递归。
-
对不起,在操作中澄清了。
-
并非如此。标题仍然是“打印”,帖子说的是“返回”。旁注:您的问题基本上是如何跟踪路径。有很多例子可以说明如何做到这一点。
标签: java algorithm search graph depth-first-search