【面试题】五道面试题一

来源:互联网 发布:vb编程入门视频教程 编辑:程序博客网 时间:2024/09/21 06:16

模拟实现栈的push/pop/min功能

#include<iostream>#include<stack>#include <cstdlib>using namespace std;template<class T>class MyStack{public:MyStack(){}~MyStack(){}public:void Push(const T& x){   s1.push(x);if (s2.empty()|| x<=s2.top()){s2.push(x);}}void Pop(){if (s1.top()==s2.top()){s1.pop();s2.pop();} else{s1.pop();}}void Min(){if (!s2.empty()){cout<<s2.top()<<endl;}}void Print(){while(!s1.empty()){cout<<s1.top()<<" ";s1.pop();}cout<<endl;while (!s2.empty()){cout<<s2.top()<<" ";s2.pop();}cout<<endl;}private:stack<T> s1;stack<T> s2;};void test(){MyStack<int> s;s.Push(1);s.Push(2);s.Push(1);s.Push(2);s.Push(1);s.Push(2);s.Push(3);s.Push(4);//s.Print();s.Pop();s.Pop();//s.Print();s.Min();s.Print();}


0 0
原创粉丝点击