私は、頂点ABCDEを持つ有向グラフを持っています。深みのある最初の検索を使用して、A-Cからのユニークなルートの数を見つけることができるようにしたい場合は、どうすればよいでしょうか?ここに私の現在のDFSがあります。グラフを仮定深さの最初の探索を使用してノードへの一意のルートの数を見つける
private final Map<Character, Node> mNodes;
private final List<Edge> mEdges;
private List<Node> mVisited = new ArrayList<>();
int weight;
int numberOfPaths;
public DepthFirstSearch(Graph graph){
mNodes = graph.getNodes();
mEdges = new ArrayList<>(graph.getEdges());
for(Node node : mNodes.values()){
node.setVisited(false);
}
}
public void depthFirstSearch(Node source){
source.setVisited(true);
List<Edge> neighbours = source.getNeighbouringEdges(mEdges);
for(Edge edge : neighbours){
System.out.println(edge.getFrom().getName()+"-"+edge.getTo().getName());
if(!edge.getTo().isVisited()){
mVisited.add(edge.getTo());
weight += edge.getWeight();
depthFirstSearch(edge.getTo());
}
}
:
そして、ここでは、Javaのコードです。たぶんあなたのグラフは非周期的であるかもしれませんか? – snakile
グラフにサイクルがありません。 – spogebob92