SeqStack_main,cpp
#include"SeqStack.h"//引入声明
template<class DataType>
SeqStack<DataType>::SeqStack()
{
top=-1;
//此时栈为空,初始化栈
}
template<class DataType>
void SeqStack<DataType>::Push(DataType x)//插入一个数x
{
if(top==StackSize-1)
throw"上溢";
top++;
data[top]=x;
}
template<class DataType>
DataType SeqStack<DataType>::Pop()
{
DataType x;
if(top==-1)
throw"下溢";
x=data[top--];
return x;
}
template<class DataType>
DataType SeqStack<DataType>::GetTop()
{
if(top!=-1)
return data[top];
}//取栈顶元素 不修改栈顶指针
template<class DataType>
int SeqStack<DataType>::Empty()//判空操作
{
if(top==-1)
return 1;
else return 0;//栈非空
}
SeqStack.cpp
#include"SeqStack.h"//引入声明
template<class DataType>
SeqStack<DataType>::SeqStack()
{
top=-1;
//此时栈为空,初始化栈
}
template<class DataType>
void SeqStack<DataType>::Push(DataType x)//插入一个数x
{
if(top==StackSize-1)
throw"上溢";
top++;
data[top]=x;
}
template<class DataType>
DataType SeqStack<DataType>::Pop()
{
DataType x;
if(top==-1)
throw"下溢";
x=data[top--];
return x;
}
template<class DataType>
DataType SeqStack<DataType>::GetTop()
{
if(top!=-1)
return data[top];
}//取栈顶元素 不修改栈顶指针
template<class DataType>
int SeqStack<DataType>::Empty()//判空操作
{
if(top==-1)
return 1;
else return 0;//栈非空
}
SeqStack.h
#ifndef SeqStack_H #define SeqStack_H const int StackSize=10; template<class DataType>//定义模板类 class SeqStack { public: SeqStack(); ~SeqStack(){ } void Push(DataType x);//将元素x入栈 DataType Pop();//将元素弹出 DataType GetTop();//取栈顶元素(并不删除 int Empty();//判断栈是否为空 private: DataType data[StackSize];//存放元素的数组 int top;//栈顶指针,指示栈顶元素在数组中的下标 } ; #endif