//用数组实现一个栈 #include <vector> #include <iostream> using namespace std; template<typename T> class stacks  { public: stacks();//构造函数 ~stacks();//析构函数 T getTop();//获取栈顶元素 bool pop();//删除栈顶元素 bool push(T number);//添加栈顶元素 bool empty(); int getSize(); private: int size = 0;//栈中元素的个数 int top = -1;//栈顶指针//栈顶下标 vector<T> v; }; //写成员函数的定义 template<typename T>  stacks<T>::stacks() {} template<typename T> stacks<T>::~stacks() {} template<typename T> bool stacks<T>::push(T number) { v.push_back(number); size++; top++; return true; } template<typename T> bool stacks<T>::pop() { if (empty()) { cout << "栈为空,弹出失败" << endl; return false; } v.pop_back(); size--; top--; return true; } template<typename T> T stacks<T>::getTop() { return v[top]; } template<typename T> bool stacks<T>::empty() { if (size == 0) return true; return false; } template<typename T> int stacks<T>::getSize() { return size; } int main() { stacks<int> s; s.push(4); s.push(6); s.push(8); int n = s.getSize(); for (int i = 0; i < n; i++) { cout << s.getTop() << endl; s.pop(); } system("pause"); return 0; }
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务