📄 stack.h
字号:
#include<assert.h>
template<class Type>class Stack
{
public:
Stack(int=100);
~Stack(){delete[]elements;}
void push(const Type&item);
Type pop();
Type GetTop();
void MakeEmpty(){top=-1;}
int IsEmpty()const{return top==-1;}
int IsFull()const{return top==maxSize-1;}
private:
int top;
Type *elements;
int maxSize;
};
template<class Type> Stack<Type>::Stack(int s):top(-1),maxSize(s)
{
//建立一个最大尺寸为s的空栈,若分配不成功则错误处理
elements=new Type[maxSize]; //创建栈空间
assert(elements!=0); //断言:动态储存分配成功与否
}
template<class Type>void Stack<Type>::push(const Type&item)
{//若栈不满,则将元素item插到该栈的栈顶,否则出错处理。
assert(!IsFull()); //断言:若栈不满则继续执行
elements[++top]=item; //栈顶指针先加1,然后按此地址进栈
}
template<class Type> Type Stack<Type>::pop()
{
//若栈不空则函数返回该站栈顶元素的值。
assert(!IsEmpty()); //断言:判断空否,若断言成立则继续执行
return elements[top--]; //返回栈顶元素的值
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -