1.顺序栈的实现
源代码:
#include<iostream.h>
const int StackSize=12; //栈最多有12个元素template <class DateType>
class SeqStack{ //定义模板类SeqStack
public:
SeqStack(); //构造函数,栈的初始化
~SeqStack(){} //析构函数
void Push(DateType x); //将元素x入栈
DateType Pop(); //将栈顶元素弹出
DateType GetTop(); //取栈顶元素(并不删除)
int Empty(); //判断栈是否为空
private:
DateType data[StackSize]; //存放栈元素的数组
int top; //栈顶指针,指示栈顶元素在数组中的下标
};
template <class DateType>
SeqStack<DateType>::SeqStack()
{
top=-1;
}
template <class DateType>
void SeqStack<DateType>::Push(DateType x)
{
if(top==StackSize-1)throw"上溢";
top++;
data[top]=x;
}
template <class DateType>
DateType SeqStack<DateType>::Pop()
{
DateType x;
if(top==-1)throw"下溢";
x=data[top--];
return x;
}
template <class DateType>
DateType SeqStack<DateType