/****************************/
/* 横型探索(幅優先探索) */
/* coded by Y.Suganuma */
/****************************/
import java.io.*;
import java.util.*;
class Search
{
void print(ArrayDeque <Character> q) {
System.out.printf(" queue の状態: ");
if (q.size() <= 0)
System.out.printf("空です\n");
else
System.out.printf("先頭及び最後尾: %c %c, 要素数: %d\n", q.peekFirst(), q.peekLast(), q.size());
}
void width()
{
ArrayDeque <Character> q = new ArrayDeque <Character> ();
System.out.printf("S の追加\n");
q.add(new Character('S'));
print(q);
System.out.printf("先頭 S を削除し,A, B, C を追加\n");
q.remove();
q.add('A');
q.add('B');
q.add('C');
print(q);
System.out.printf("先頭 A を削除し,D, E を追加\n");
q.remove();
q.add('D');
q.add('E');
print(q);
System.out.printf("先頭 B を削除\n");
q.remove();
print(q);
System.out.printf("先頭 C を削除し,F, G を追加\n");
q.remove();
q.add('F');
q.add('G');
print(q);
System.out.printf("先頭 D を削除\n");
q.remove();
print(q);
System.out.printf("先頭 E を削除\n");
q.remove();
print(q);
System.out.printf("先頭 F を削除\n");
q.remove();
print(q);
System.out.printf("先頭 G を削除\n");
q.remove();
print(q);
}
}
public class Test
{
public static void main (String[] args)
{
Search ss = new Search();
ss.width();
}
}