스택 클래스
#include <iostream>
using namespace std;
class Stack {
public:
Stack();
void Push(int val);
int Pop();
bool IsEmpty();
bool IsFull();
private:
int top;
int data[100];
int maxCount;
};
Stack::Stack() {
maxCount=100;
top=-1;
}
bool Stack::IsEmpty() {
if(top==-1) return true;
return false;
}
bool Stack::IsFull() {
if(top==maxCount-1) return true;
return false;
}
void Stack::Push(int val) {
if(IsFull()) {
cout<<"****Stack is full!****"<<endl;
return;
}
top=top+1;
data[top]=val;
}
int Stack::Pop() {
if(IsEmpty()) {
cout<<"****Stack is empty!****"<<endl;
return -1;
}
return data[top--];
}
int main() {
int i;
Stack stack;
for(i=0;i<5;++i) {
cout<<"Push "<<i+1<<endl;
stack.Push(i+1);
}
for(i=0;i<5;++i)
cout << "pop "<< stack.Pop() << endl;
return 0;
}