/****************************/
/* 縦型探索(深さ優先探索) */
/* 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;
}