Java に触れてから長い時間が経っているので、これは奇妙な質問のように思えるかもしれません。現在、この幅優先検索コードを StackOverflow で見つけました。最後に変更しましたが、元のコードをここに投稿します。
public List<Node> getDirections(Node start, Node finish){
List<Node> directions = new LinkedList<Node>();
Queue<Node> q = new LinkedList<Node>();
Node current = start;
q.add(current);
while(!q.isEmpty()){
current = q.remove();
directions.add(current);
if (current.equals(finish)){
break;
}else{
for(Node node : current.getOutNodes()){
if(!q.contains(node)){
q.add(node);
}
}
}
}
if (!current.equals(finish)){
System.out.println("can't reach destination");
}
return directions;
}
私は他の深さ優先検索アルゴリズムを知っていますが、幅優先検索を深さ優先検索に簡単に変換できるとも言われました.2つのまったく異なるコードではなく、このコードに変換した方がよく理解できるでしょう. .
これを深さ優先検索に変更するにはどうすればよいですか?