我有一个问题,我需要在度数< = 4的无向图中搜索所有唯一路径。该图基本上是一个网格,所有连接仅在直接邻居之间(4路)。
我该如何解决这个问题?
答案 0 :(得分:2)
这是我刚才提出的伪代码:
这是Java中的这段代码(未经测试):
public int getPaths (Node n, Set<Node> nodesVisited) {
int pathCount = 0;
for (Path p : n.getPaths()) {
Node otherSide = p.getOtherNode(n); // Where this function basically takes a node and gets the other node in the path
if (!(nodesVisited.contains(otherSide))) {
nodesVisited.add(otherSide);
pathCount += 1 + getPaths(otherSide, new Set<Nodes>(nodesVisited));
}
}
return pathCount;
}
这应该从一个起始节点找到路径。你可以在每个节点上启动它,但你会得到一些重复。为了清除它们,你还需要返回路径。