链式栈
来源:互联网 发布:非农数据的解释 编辑:程序博客网 时间:2024/04/30 04:18
StackNode.h
template<typename Type>class LinkStack;template<typename Type>class StackNode{private:Type m_data;StackNode<Type> *m_pnext;private:friend class LinkStack<Type>;StackNode(Type dt,StackNode<Type> *next):m_data(dt),m_pnext(next){};};
LinkStack.h
#include "StackNode.h"template<typename Type> class LinkStack{private:StackNode<Type> *m_ptop;public:LinkStack():m_ptop(NULL){}~LinkStack(){MakeEmpty();}public:void MakeEmpty();void Push(const Type item);Type Pop();Type GetTop() const;void Print();bool IsEmpty() const{return m_ptop==NULL;}};
LinkStack.cpp
template<typename Type> void LinkStack<Type>::MakeEmpty(){StackNode<Type> *p;while(m_ptop != NULL){p = m_ptop;m_ptop = m_ptop->m_pnext;delete p;}}template<typename Type> void LinkStack<Type>::Push(const Type item){StackNode<Type> *p = new StackNode<Type>(item, m_ptop);m_ptop = p;}template<typename Type> Type LinkStack<Type>::GetTop() const{if(IsEmpty()){cout<<"There is no elements!"<<endl;exit(1);}return m_ptop->m_data;}template<typename Type> Type LinkStack<Type>::Pop(){if(IsEmpty()){cout<<"There is no elements!"<<endl;exit(1);}StackNode<Type> *p = m_ptop;m_ptop = m_ptop->m_pnext;Type temp = p->m_data;delete p;return temp;}template<typename Type> void LinkStack<Type>::Print(){StackNode<Type> *p = m_ptop;while(p != NULL){cout<<p->m_data<<' ';p = p->m_pnext;}cout<<endl;}
Test.cpp
#include <iostream>using namespace std;#include "LinkStack.h"int main(){LinkStack<int> stack;int init[10]={1,3,5,7,4,2,8,0,6,9};for(int i=0;i<10;i++){stack.Push(init[i]);}stack.Print();cout<<stack.Pop()<<endl;stack.Print();cout<<stack.GetTop()<<endl;stack.Print();cout<<stack.Pop()<<endl;stack.Print();stack.MakeEmpty();stack.Print();stack.Pop();return 0;}
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 栈-链式
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 链式栈
- 根据hibernate生成表
- javascript的cookie操作函数
- Blackle.com与google节能
- 一位软件工程师的6年总结
- 楼天城楼教主的acm心路历程
- 链式栈
- php 投票(调查)
- 海外中国留学生应为国争光保持诚信,和中提醒,海外中国留学生心中都应有本“诚信账”
- Shell笔记(一)基本命令
- 一步一步打造WebIM(1)
- php的Base62类,适用于数值转字符串
- Linux多线程同步
- Java调用存储过程(有返回值)
- JSON学习备忘录