Pushok

My simple stack class ;)

Apr 10th, 2011
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. template<typename T> class CStack {
  2. public:
  3.     unsigned int size()
  4.     {
  5.         return StackSize;
  6.     }
  7.  
  8.     T pop()
  9.     {
  10.         int top = 0;
  11.  
  12.         if(StackSize != 0){
  13.             top = _Stack[StackSize-1];
  14.  
  15.             T* _newstack = (T*)malloc(--StackSize * sizeof(T));
  16.  
  17.             for(int i=0;i<StackSize;i++)
  18.                 _newstack[i] = _Stack[i];
  19.  
  20.             free(_Stack);
  21.             _Stack = _newstack;
  22.         }
  23.  
  24.         return top;
  25.     }
  26.  
  27.     void push(T j)
  28.     {
  29.         T* _newstack = (T*)malloc(++StackSize * sizeof(T));
  30.  
  31.         if(_Stack != NULL)
  32.         {
  33.             for(int i=0;i<StackSize-1;i++)
  34.                 _newstack[i] = _Stack[i];
  35.  
  36.             free(_Stack);
  37.         }
  38.  
  39.         _Stack = _newstack;
  40.  
  41.         _Stack[StackSize-1] = j;
  42.     }
  43.  
  44.     CStack()
  45.     {
  46.         StackSize = 0;
  47.         _Stack = NULL;
  48.     }
  49.  
  50.     ~CStack()
  51.     {
  52.         free(_Stack);
  53.         StackSize = 0;
  54.     }
  55.  
  56. private:
  57.     unsigned int StackSize;
  58.     T* _Stack;
  59. };
Advertisement
Add Comment
Please, Sign In to add comment