C++ 实现链式栈
来源:互联网 发布:怎么下载不了软件 编辑:程序博客网 时间:2024/06/07 09:06
测试环境:vs2010 windows7
stack.hpp
template<class T>class LinkStack{private:int NodeNum;struct Node //栈的节点{T data;struct Node *next;};struct Node *pTop;//栈顶public:LinkStack();~LinkStack();void push(T data);//入栈T pop(); //出栈bool isEmpty();void clear();int size();};template<class T> LinkStack<T>::LinkStack(){this->NodeNum = 0;this->pTop = NULL;}template<class T> LinkStack<T>::~LinkStack(){this->clear();}template<class T> int LinkStack<T>::size(){return NodeNum;}template<class T>bool LinkStack<T>::isEmpty(){return pTop == NULL;}template<class T>void LinkStack<T>::clear(){struct Node *pTmp;while(pTop != NULL){pTmp = pTop;pTop = pTop->next;delete pTmp; //释放内存}NodeNum = 0;pTop = NULL;}template<class T>void LinkStack<T>::push(T data){struct Node *node= new Node;node->data = data;node->next = NULL;if(pTop == NULL){pTop = node;}else{node->next = pTop;pTop = node;}NodeNum++;}template<class T>T LinkStack<T>::pop(){struct Node *pTmp;T tmp;if(pTop == NULL){return 0;}else{pTmp = pTop;pTop = pTop->next;tmp = pTmp->data;delete pTmp; //释放内存NodeNum--;return tmp;}}
test.cpp
#include<iostream>#include"stack.hpp"using namespace std;void main(){LinkStack<int> stack;for(int i=0;i<10;i++){stack.push(i);}while(!stack.isEmpty()){cout<<stack.pop()<<endl;}cin.get();}
0 0
- C实现链式栈
- C链式栈实现
- 数据结构 链式 栈 c实现
- C语言实现链式栈
- c链式栈的实现
- 链式栈的C实现
- C实现顺序栈和链式栈
- 用c语言实现的链式栈
- 链式栈的实现(ANSI C)
- C++ 链式栈的实现
- 数据结构-链式栈-C语言实现
- 链式栈的C语言实现
- 链表实现链式栈 c语言
- C语言反向链式栈的实现
- C语言实现的一个链式栈
- 栈的链式实现(C语言)
- 数据结构 -- 用C实现链式栈
- 栈的链式存储实现c语言
- 链栈的c++实现
- 【iOS开发-动画】CABasicAnimation实现动画
- Spring MVC 与 Struts 对比原理分析.
- java数据库连接的几种方法
- jquery 表格自动拆分(方便打印)插件-printTable
- C++ 实现链式栈
- 求助,连接webservice出错
- Oracle RMAN 兼容性 及 不同版本和不同平台之间使用 常见问题说明
- Android官方提供的支持不同屏幕大小的全部方法
- THE DRUNK JAILER
- Android47个小知识点总结
- jQuery 限制文本框只能输入数字
- 解决Oracle10G乱码问题
- 申请baidu地图 sdk,获取sha1步骤