深さ優先検索に関するウィキペディアの記事で説明されている内容によると、バイナリ ツリーの DFS は、事前順序付けされたトラバーサル ルート (左から右) と同じだと思います (私は正しいですか?)。
しかし、少し検索してこのコードを取得しました。このコードの作成者は、ノードが以前にアクセスされたことがあるかどうかを記録するためにツリーが必要であると主張しています (または、グラフの場合はこれが必要ですか?)。
// copyright belongs to the original author
public void dfs() {
// DFS uses Stack data structure
Stack stack = new Stack();
stack.push(this.rootNode);
rootNode.visited=true;
printNode(rootNode);
while(!stack.isEmpty()) {
Node node = (Node)s.peek();
Node child = getUnvisitedChildNode(n);
if(child != null) {
child.visited = true;
printNode(child);
s.push(child);
}
else {
s.pop();
}
}
// Clear visited property of nodes
clearNodes();
}
誰でもこれを説明できますか?