幅優先探索

breadth-first-search.png
Queue<Status> q=new LinkedList<Status>();
q.add(初期状態);
while(!q.isEmpty()){
    T now = q.poll();
     //状態nowに対しての処理
    for(int i=0;i<次の状態の個数;i++){
            Status next =i番目の状態;
            if(nextが訪問済みであるかどうかの判定){
                   q.add(next);
             }
    }
}

サポートサイト Wikidot.com