#define MAX_SIZE 20
class Stack {
private:
int count;
int capacity;
int data[MAX_SIZE];
public:
Stack();
~Stack();
void push(const int& value);
int top() const;
void pop();
int size() const;
bool full() const;
bool empty() const;
void clear();
};
Stack::Stack()
: count(0),capacity(MAX_SIZE) {
}
Stack::~Stack(){
clear();
}
void Stack::push(const int& value) {
if(!full()) {
data[count++] = value;
}
}
int Stack::top() const {
if (!empty()) {
return data[count-1];
}
}
void Stack::pop() {
if (!empty()) {
count--;
}
}
int Stack::size() const {
return count;
}
bool Stack::full() const {
return (size() == capacity ? true : false);
}
bool Stack::empty() const {
return (size() == 0 ? true : false);
}
void Stack::clear() {
count = 0;
}