#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)--;
   }
 } 

}
