/****************************/ /* 縦型探索(深さ優先探索) */ /* coded by Y.Suganuma */ /****************************/ import java.io.*; import java.util.*; class Search { void print(Stack <Character> q) { System.out.printf(" queue の状態: "); if (q.size() <= 0) System.out.printf("空です\n"); else System.out.printf("先頭: %c, 要素数: %d\n", q.peek(), q.size()); } void depth() { Stack <Character> q = new Stack <Character> (); q.push(new Character('S')); print(q); System.out.printf("先頭 S を削除し,A, B, C を追加\n"); q.pop(); q.push('A'); q.push('B'); q.push('C'); print(q); System.out.printf("先頭 C を削除し,F, G を追加\n"); q.pop(); q.push('F'); q.push('G'); print(q); System.out.printf("先頭 G を削除\n"); q.pop(); print(q); System.out.printf("先頭 F を削除\n"); q.pop(); print(q); System.out.printf("先頭 B を削除\n"); q.pop(); print(q); System.out.printf("先頭 A を削除し,D, E を追加\n"); q.pop(); q.push('D'); q.push('E'); print(q); System.out.printf("先頭 E を削除\n"); q.pop(); print(q); System.out.printf("先頭 D を削除\n"); q.pop(); print(q); } } public class Test { public static void main (String[] args) { Search ss = new Search(); ss.depth(); } }