本篇文章给大家分享的是有关C++中如何使用链栈模板,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
C++链栈模板声明
template <class T> struct StackNode { T typeData; StackNode *nextNode; }; template <class T> class DZ_Stack { public: bool Push(const T data); bool Pop(T& data); bool Peek(T& data); bool IsEmpty(); DZ_Stack(); virtual ~DZ_Stack(); private: StackNode<T> *pStackTop; int iNodeCount; };
C++链栈模板实现
template <class T>
DZ_Stack<T>::DZ_Stack()
{
pStackTop=NULL;
iNodeCount=0;
}
template <class T>
DZ_Stack<T>::~DZ_Stack()
{
while(!IsEmpty())
{
StackNode<T> *pStackNode= pStackTop;
pStackToppStackTop=pStackTop->nextNode;
delete (pStackNode);
pStackNode=NULL;
}
pStackTop=NULL;
}
template <class T>
bool DZ_Stack<T>::Push(const T data)
{
StackNode<T> *pStackNode=new StackNode<T>;
if( NULL == pStackNode )
return false;
pStackNode->typeData=data;
pStackNode->nextNode=pStackTop;
pStackTop=pStackNode;
iNodeCount++;
return true;
}
template <class T>
bool DZ_Stack<T>::Pop(T& data)
{
if ( IsEmpty() )
return false;
data=pStackTop->typeData;
StackNode<T> *pStackNode= pStackTop;
pStackToppStackTop=pStackTop->nextNode;
delete (pStackNode);
iNodeCount--;
return true;
}
template <class T>
bool DZ_Stack<T>::Peek(T& data)
{
if (IsEmpty())
return false;
data=pStackTop->typeData;
return true;
}
template <class T>
bool DZ_Stack<T>::IsEmpty()
{
if ( NULL == pStackTop )
return true;
else
return false;
}
#endif // !defined(AFX_DZ_STACK_H__10036803_D752_4EF7_
852D_DD6B377D7AB9__INCLUDED_)
以上就是C++中如何使用链栈模板,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。