#include <iostream>
using namespace std;
#define SIZE 10
struct stack {
stack();
void push(char ch);
char pop();
private:
char stackData[SIZE];
int topOfStack;
};
stack::stack()
{
cout << "Constructing a stack\n";
topOfStack = 0;
}
void stack::push(char ch)
{
if(topOfStack==SIZE) {
cout << "Stack is full\n";
return;
}
stackData[topOfStack] = ch;
topOfStack++;
}
char stack::pop()
{
if(topOfStack==0) {
cout << "Stack is empty\n";
return 0; // return null on empty stack
}
topOfStack--;
return stackData[topOfStack];
}
int main()
{
stack stackObject1, stackObject2;
int i;
stackObject1.push('a');
stackObject2.push('x');
stackObject1.push('b');
stackObject2.push('y');
stackObject1.push('c');
stackObject2.push('z');
for(i = 0; i <3; i++)
cout << "Pop stackObject1: " << stackObject1.pop() << endl;
for(i = 0; i <3; i++)
cout << "Pop stackObject2: " << stackObject2.pop() << endl;
return 0;
}
|