#include <iostream>
using namespace std;

#define SIZE 100

class stack {
	char memory[SIZE];
	int top;
public:
   	stack();
	void push(char ch);
	bool isEmpty(){return top == 0;}
	char pop();
};

stack::stack(){
	cout << "スタックを生成する。\n";
	top = 0;
}

void stack::push(char ch){
	if (top >= SIZE) {
		cout << "スタックは一杯です。\n";
		return;
	}
	memory[top++] = ch;
}

char stack::pop(){
	if (top <= 0){
		cout << "スタックは空です。\n";
		return 0;
	}
	return memory[--top];
}
stack loadstack();
stack loadstack(int upper);
void displatstack(stack s);
stack loadstack()
{
	stack s1;
	for (char c = 'a'; c <= 'z'; c++){
		s1.push(c);
	}
	return s1;
}
stack loadstack(int upper)
{
	stack s1;
	char first = upper ? 'A':'a';
	char last = upper ? 'Z':'z';
	for (char c = first;c <= last; c++){
		s1.push(c);
	}
	return s1;
}
void displaystack(stack s)
{
	while(!s.isEmpty()){
		cout << s.pop() << ' ';
	}
}

int main(){
	stack s1 = loadstack(1);
	displaystack(s1);
	stack s2 = loadstack(0);
	displaystack(s2);
	return 0;
} 