大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家分享的是有关C++中如何使用链栈模板,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联专注于企业成都营销网站建设、网站重做改版、光泽网站定制设计、自适应品牌网站建设、H5开发、成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为光泽等各大城市提供网站开发制作服务。
C++链栈模板声明
templatestruct StackNode { T typeData; StackNode *nextNode; }; template 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 *pStackTop; int iNodeCount; };
C++链栈模板实现
template
DZ_Stack
::DZ_Stack() {
pStackTop=NULL;
iNodeCount=0;
}
template
DZ_Stack
::~DZ_Stack() {
while(!IsEmpty())
{
StackNode
*pStackNode= pStackTop; pStackToppStackTop=pStackTop->nextNode;
delete (pStackNode);
pStackNode=NULL;
}
pStackTop=NULL;
}
template
bool DZ_Stack
::Push(const T data) {
StackNode
*pStackNode=new StackNode ; if( NULL == pStackNode )
return false;
pStackNode->typeData=data;
pStackNode->nextNode=pStackTop;
pStackTop=pStackNode;
iNodeCount++;
return true;
}
template
bool DZ_Stack
::Pop(T& data) {
if ( IsEmpty() )
return false;
data=pStackTop->typeData;
StackNode
*pStackNode= pStackTop; pStackToppStackTop=pStackTop->nextNode;
delete (pStackNode);
iNodeCount--;
return true;
}
template
bool DZ_Stack
::Peek(T& data) {
if (IsEmpty())
return false;
data=pStackTop->typeData;
return true;
}
template
bool DZ_Stack
::IsEmpty() {
if ( NULL == pStackTop )
return true;
else
return false;
}
#endif // !defined(AFX_DZ_STACK_H__10036803_D752_4EF7_
852D_DD6B377D7AB9__INCLUDED_)
以上就是C++中如何使用链栈模板,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。