#include"CStack.hpp"
namespace bai25{
CStack::CStack()
{
counter = 0;
try{
stack = new int32_t[MAX];
}
catch(bad_alloc&){
cout<<"ko the tao stack"<<endl;
}
}
CStack::CStack(int32_t data)
{
try{
stack = new int32_t[MAX];
}
catch(bad_alloc&)
{
cout<<"ko the tao stack"<<endl;
}
counter = 1;
stack[0] = data;
}
bool CStack::IsEmpty()
{
if(!this->counter)
{
return true;
}
return false;
}
bool CStack::IsFull()
{
if(this->counter == MAX - 1)
{
return true;
}
return false;
}
CStack::~CStack()
{
delete[] stack;
}
void CStack::Push(const int32_t data)
{
this->stack[this->counter] = data;
(this->counter)++;
}
void CStack::Pop()
{
int32_t data = this->stack[this->counter];
cout<<data<<endl;
if(this->counter)
{
(this->counter)--;
}
}
}
I2luY2x1ZGUiQ1N0YWNrLmhwcCIKCm5hbWVzcGFjZSBiYWkyNXsKIENTdGFjazo6Q1N0YWNrKCkKIHsKICBjb3VudGVyID0gMDsKICB0cnl7CiAgIHN0YWNrID0gbmV3IGludDMyX3RbTUFYXTsKICB9CiAgY2F0Y2goYmFkX2FsbG9jJil7CiAgIGNvdXQ8PCJrbyB0aGUgdGFvIHN0YWNrIjw8ZW5kbDsKICB9IAogfQogIAogQ1N0YWNrOjpDU3RhY2soaW50MzJfdCBkYXRhKQogewogIHRyeXsKICBzdGFjayA9IG5ldyBpbnQzMl90W01BWF07CiAgfQogIGNhdGNoKGJhZF9hbGxvYyYpCiAgewogICBjb3V0PDwia28gdGhlIHRhbyBzdGFjayI8PGVuZGw7CiAgfQogIGNvdW50ZXIgPSAxOwogIHN0YWNrWzBdID0gZGF0YTsKIH0gCgogYm9vbCBDU3RhY2s6OklzRW1wdHkoKQogewogIGlmKCF0aGlzLT5jb3VudGVyKQogIHsgCiAgIHJldHVybiB0cnVlOwogIH0KCiAgcmV0dXJuIGZhbHNlOwogfQoKIGJvb2wgQ1N0YWNrOjpJc0Z1bGwoKQogeyAKICBpZih0aGlzLT5jb3VudGVyID09IE1BWCAtIDEpCiAgewogICByZXR1cm4gdHJ1ZTsKICB9CiAgCiAgcmV0dXJuIGZhbHNlOwogfSAKCiBDU3RhY2s6On5DU3RhY2soKQogewogIGRlbGV0ZVtdIHN0YWNrOwogfQoKIHZvaWQgQ1N0YWNrOjpQdXNoKGNvbnN0IGludDMyX3QgZGF0YSkKIHsKICB0aGlzLT5zdGFja1t0aGlzLT5jb3VudGVyXSA9IGRhdGE7CiAgKHRoaXMtPmNvdW50ZXIpKys7CiB9Cgogdm9pZCBDU3RhY2s6OlBvcCgpCiB7IAogICBpbnQzMl90IGRhdGEgPSB0aGlzLT5zdGFja1t0aGlzLT5jb3VudGVyXTsKICAgY291dDw8ZGF0YTw8ZW5kbDsKICAgaWYodGhpcy0+Y291bnRlcikKICAgewogICAgKHRoaXMtPmNvdW50ZXIpLS07CiAgIH0KIH0gCgp9Cg==