c++实现数据结构六 链式栈
来源:互联网 发布:mysql 修复表 编辑:程序博客网 时间:2024/06/10 18:54
StackNode.h
template<typename Type> class LinkStack;template<typename Type> class StackNode{private:Type data;StackNode<Type> *pnext;private:friend class LinkStack<Type>;StackNode() {};StackNode(Type item, StackNode<Type> *next=NULL):data(item), pnext(next) {}~StackNode(){cout<<"析构函数"<<endl;pnext = NULL;}};
LinkNode.h
#include "StackNode.h"template<typename Type> class LinkStack{public:LinkStack():ptop(NULL) {}~LinkStack(){cout<<"~LinkStack"<<endl;MakeEmpty();}public:void MakeEmpty();void Push(const Type item);Type Pop();Type GetTop() const;void Print();bool IsEmpty() const{return ptop == NULL;}private:StackNode<Type> *ptop;};template<typename Type>void LinkStack<Type>::MakeEmpty(){if( IsEmpty() ){cout<<"the link stack has been empty"<<endl;exit(1);}StackNode<Type> *pdel;while(ptop != NULL){pdel =ptop;ptop = ptop->pnext;delete pdel;}}template<typename Type>void LinkStack<Type>::Push(const Type item){StackNode<Type> *ele = new StackNode<Type>;ele->data = item;ele->pnext= ptop;ptop = ele;//ptop = new StackNode<Type>(item, ptop);}template<typename Type>Type LinkStack<Type>::Pop(){if( IsEmpty()){cout<<"cannot pop the stack node"<<endl;exit(1);}StackNode<Type> *pdel =ptop;ptop=ptop->pnext;Type item = pdel->data;delete pdel;return item;}template<typename Type>Type LinkStack<Type>::GetTop() const{if( IsEmpty() ){cout<<"the link stack is empty"<<endl;exit(1);}return ptop->data;}template<typename Type>void LinkStack<Type>::Print(){cout<<"top";StackNode<Type> *pmov=ptop;while(pmov != NULL){cout<<"-->"<<pmov->data;pmov = pmov->pnext;}cout<<"-->buttom"<<endl;}
顺便测试了下析构函数,只有在对象释放时才会调用析构函数。
- 数据结构 链式 栈 c实现
- c++实现数据结构六 链式栈
- 数据结构学习系列六-链式栈(c++实现且应用模板)
- 数据结构-链式栈-C语言实现
- 数据结构 -- 用C实现链式栈
- 数据结构(严蔚敏)之六——链式队列c语言实现
- (C语言)栈的链式实现(数据结构九)
- 数据结构:栈的链式实现(C语言描述)
- 数据结构与算法设计---链式栈的实现(C++)
- 数据结构中链式栈的c语言实现
- 数据结构---C语言栈的链式表示与实现
- 数据结构--链式栈(C语言)
- 链式栈 C语言数据结构
- 数据结构c++实现----链式栈
- 数据结构-链式栈的实现
- 数据结构栈(链式实现)
- 数据结构---栈的链式实现
- 数据结构-->栈的链式实现
- ACM Steps_Chapter Three_Section3
- 位, 字节和字 bit, byte and word
- 解决 Gene6 FTP 在 windows 2008 上面破解后无法启动的问题
- IE6下css hack:jquery 隐藏元素不显示
- 解决js跨域问题
- c++实现数据结构六 链式栈
- netfilter按端口过滤报文
- Oracle 视图
- hadoop自定义文件的输入格式
- Android开发新手HelloWorld解析
- 常用数据结构与算法:二叉堆(binary heap)
- strcpy的缺陷和改进
- 堆和栈,队列的区别
- javascript 数值操作