栈的两种C++实现 (二)

2014-11-24 12:52:41 · 作者: · 浏览: 4
ll()

{

return tos>=capacity-1;

}

template

inline int StackArray::Resize(int newmaxsize)

{

DisposeStack();

capacity=newmaxsize;

tos=EmptyTOS;

try

{

array=new T[newmaxsize];

}

catch(std::bad_alloc&)

{

return 0;

}

return 1;

}

template

inline int StackArray::Push(const T& data)

{

if(IsFull())

{

return 0;

}

else

{

array[++tos]=data;

return 1;

}

}

template

inline int StackArray::Pop(T* data=NULL)

{

if(IsEmpty())

{

return 0;

}

else

{

if(data)

{

*data=array[tos];

}

--tos;

return 1;

}

}

template

inline int StackArray::Top(T* data) const

{

if(IsEmpty())

{

return 0;

}

else

{

*data=array[tos];

return 1;

}

}