深さ優先探索と幅優先探索は、実は簡単に実装することができます。 次のインターフェースを実装したクラスで例を見ていきます。 interface Node { public String getName(); public List<Node> getChildren(); } 深さ優先探索 深さ優先探索は以下の手順で実装できます。 スタックを用意する スタックに最初の要素を入れる(push) スタックから要素を取り出す(pop) 要素に対して処理をする 要素の子供をスタックに入れる(push) スタックがカラになるまで3〜5を繰り返す rootNodeから深さ優先探索でnameを出力するプログラムは次のようになります。 Deque<Node> stack = ArrayDeque<Node>(); stack.push(rootNode); while(!stack.isEmpty()) {