ComputerScience/STL
[STL] Stack
kyungmin.yu
2019. 4. 10. 10:45
template <class T> class _stack{ private: T* ele; int _top, cap; public: _stack<T>():_top(0), cap(2){ ele = new T[cap]; } ~_stack<T>(){ delete[] ele; } void resize(int ncap){ cap = ncap; T* tmp = new T[cap]; for(int i = 0; i < _top; i++) tmp[i] = ele[i]; delete[] ele; ele = tmp; } int full(){return _top == cap;} int empty(){return _top == 0;} int size(){return _top;} void push(T e){ if(full()) resize(cap * 2); ele[_top++] = e; } void pop(){ if(empty()) return; _top--; } T top(){ if(empty()) return NULL; return ele[_top - 1]; } void clear(){ _top = 0; resize(2); } };