C++的栈运用

来源:百度知道 编辑:UC知道 时间:2024/05/27 02:15:47
运用栈解决后缀表达式的题,请帮忙更正错误(Windows SP2 VC++6.0)
代码太长,在http://user.qzone.qq.com/290890727/blog/1223725319

//vc6编译运行ok
#include <iostream>
#include<stdio.h>

using namespace std;

#define ms 20

template <class DT> //定义虚拟类型DT(DataType),用于类模板
class Stack //定义类模板“栈”
{
public:
Stack <DT>(); /*声明*/
void push(DT); /*函数*/
DT pop(); /*部分*/
DT Gtop(); /*(构造,入栈,退栈,取栈顶)*/
private:
DT Data[ms]; //栈元素
int gtop; //栈顶标识符
};

template <class DT>
Stack<DT>::Stack<DT>() //定义构造函数
{
gtop=0; //栈初始化为空栈
}

template <class DT>
void Stack<DT>::push(DT data) //定义入栈函数
{
if(gtop==ms) //判栈满
printf("栈满");
Data[gtop]=data; //入栈
gtop+=1; //栈内元素个数加一
}

template <class DT>
DT Stack<DT>::pop() //定义退栈函数
{
DT store=Gtop(); //调用取栈顶函数
gtop-=1; //栈元素个数减一
return store; //返回原有栈顶值
}

template <class DT>
DT Stack