/****************************/ /* 縦型探索(深さ優先探索) */ /* coded by Y.Suganuma */ /****************************/ #include <stdio.h> #include <stack> using namespace std; void print(stack<char> &q) { printf(" stack の状態: "); if (q.empty()) printf("空です\n"); else printf("先頭: %c, 要素数: %d\n", q.top(), q.size()); } int main() { stack<char> q; printf("S の追加\n"); q.push('S'); print(q); printf("先頭 S を削除し,A, B, C を追加\n"); q.pop(); q.push('A'); q.push('B'); q.push('C'); print(q); printf("先頭 C を削除し,F, G を追加\n"); q.pop(); q.push('F'); q.push('G'); print(q); printf("先頭 G を削除\n"); q.pop(); print(q); printf("先頭 F を削除\n"); q.pop(); print(q); printf("先頭 B を削除\n"); q.pop(); print(q); printf("先頭 A を削除し,D, E を追加\n"); q.pop(); q.push('D'); q.push('E'); print(q); printf("先頭 E を削除\n"); q.pop(); print(q); printf("先頭 D を削除\n"); q.pop(); print(q); return 0; }