又是为了考研,今天学习了模板类来实现堆栈;
关于堆栈,我们知道先进后出为堆栈;OK那就开始实现模板类把!
template<typename T>
class Stack{
public:
Stack();
~Stack();
bool isEmpty();
bool isFull();
void clearStack();
T pop();
void push(T &t);
private:
int top;
T stack[MAX];
};
C++中用到了template和typename关键字来定义模板类和自定义类型:
函数声明中,template<typename T>在最上面,然后定义构造函数、析构函数......
在函数实现中,每一个成员函数上面也要写有:
template<typename T>以表明其模板类坚定的立场。
template<typename T>
Stack<T>::Stack(){
top=0;
}//构造函数
template<typename T>
Stack<T>::~Stack(){
}//析构函数
template<typename T>
bool Stack<T>::isEmpty(){
if(top==0){
return true;
}
return false;
}//判断函数是否为空
template<typename T>
bool Stack<T>::isFull(){
if(top==MAX){
return true;
}
return false;
}//判断函数是否满足
template<typename T>
void Stack<T>::push(T &t){
if(top<MAX){
stack[top]=t;
++top;
}
}//压栈
template<typename T>
T Stack<T>::pop(){
if(top>0){
top--;
return stack[top];
}
return 0;
}//出栈
template<typename T>
void clearStack(){
top=0;
}//清空队列