【文件属性】:
文件名称:轻松学习c++&C++典型例题
文件大小:11MB
文件格式:RAR
更新时间:2012-08-23 06:26:17
经典c++例题
public:
void print(){cerr<<"栈已空,无法出栈"<class Stack{
int top; //栈顶指针(下标)
T *elements; //动态建立的数值
int maxSize; //栈最大允纳的元素个数
public:
Stack(int=20); //栈如不指定大小,设为20元素
~Stack(){delete[] elements;}
void Push(const T &data) ; //压栈
T Pop(); //弹出,top--
T GetElem(int i){return elements[i];} //返回指定元素,top不变
void MakeEmpty(){top= -1;} //清空栈
bool IsEmpty() const{return top== -1;} //判栈空
bool IsFull() const{return top==maxSize-1;} //判栈满
void PrintStack(); //输出栈内所有数据
};
template Stack::Stack(int maxs){
maxSize=maxs;
top=-1;
elements=new T [maxSize]; //建立栈空间
}
template void Stack::PrintStack(){
for(int i=0;i<=top;i++) cout< void Stack::Push(const T &data) {
if(IsFull()) throw pushOnFull(data); //栈满则抛出异常
elements[++top]=data; //栈顶指针先加1,元素再进栈,top是指向栈顶元素
}
templateT Stack::Pop() {
if(IsEmpty()) throw popOnEmpty(); //栈已空则不能退栈,抛出异常
return elements[top--]; //返回栈顶元素,同时栈顶指针退1
}