简化版stack

来源:互联网 发布:淘宝信用卡办理条件 编辑:程序博客网 时间:2024/05/23 16:22
/*功能:简化版stack说明:参照《Data Structures with C++ Using STL》第二版编写,没有编写异常处理模块,利用vector类实现ministack尾部添加元素push, 删除元素pop,取栈顶元素top()获取栈元素的数量size(),判断栈是否为空empty()*/#include <vector>using namespace std;template <typename T>class miniStack{public:miniStack();//构造函数,创建一个空栈void push(const T& item);//将item入栈//后置条件:栈具有最顶端的元素,栈的大小加1void pop();//删除栈顶元素//前提条件:栈非空,如果栈为空,则发出underflowError异常T& top();//返回栈顶元素的指针//前提条件:栈非空,如果栈为空,则发出underflowError异常const T& top() const;//常量版本bool empty() const;//判断栈是否为空int size() const;//栈中元素的数目private:vector<T> stackVector;};template <typename T>miniStack<T>::miniStack(){}template <typename T>void miniStack<T>::push(const T& item){stackVector.push_back(item);}template <typename T>T& miniStack<T>::top(){if (empty()){//异常处理}return stackVector.back();}template <typename T>void miniStack<T>::pop(){if (empty()){//异常处理}stackVector.pop_back();}template <typename T>bool miniStack<T>::empty() const{if (stackVector.empty())return true;return false;}template <typename T>int miniStack<T>::size() const{return stackVector.size();}

原创粉丝点击