本篇文章给大家分享的是有关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++中如何使用链栈模板,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。