今天学习栈,试着用c++写了一个模版普通栈o(∩_∩)o
#define MAXSIZE 10000
template<typename T>
class stack
{
private:
T *STACK;
int TOP;
public:
stack();
~stack();
bool pop();
bool push(T);
T top();
bool empty();
void show(bool);
int size();
};
template<typename T> stack<T>::stack()
{
STACK=new T[MAXSIZE];
TOP=-1;
}
template<typename T> stack<T>::~stack()
{
delete STACK;
}
template<typename T> bool stack<T>::pop( )
{
if(TOP==-1)
return false;
--TOP;
return true;
}
template<typename T> bool stack<T>::push(T d)
{
if(TOP==MAXSIZE-1)return false;
STACK[++TOP]=d;
return true;
}
template<typename T>T stack<T>::top()
{
return STACK[TOP];
}
template<typename T> bool stack<T>::empty()
{
if(TOP==-1)return true;
return false;
}
template<typename T> void stack<T>::show(bool reverse)
{
if(reverse)
{
for(int i=TOP;i>=0;--i)
std::cout<<STACK[i]<<" ";
}
else
{
for(int i=0;i<=TOP;++i)
std::cout<<STACK[i]<<" ";
}
}
template<typename T>int stack<T>::size()
{
return TOP+1;
}
后续再把其它种类的栈补上来