您的位置:首页 > 其它

设计包含min函数的栈(栈)

2013-03-31 21:20 477 查看
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。 

要求函数min、push以及pop的时间复杂度都是O(1)。 

#include <iostream>
#include <stack>
using namespace std;
template<class T>
class MinStack
{
private:
stack<T> stackA;
stack<T> stackB;
public:
void push(T t);
void pop();
T min();
}
template <class T>
inline void MinStack<T>::push(T t)
{
stackA.push(t);
if(stackB.empty())
{
stackB.push(t);
}
else
{
T t0 = stackB.top();
if(t <=to)
stackB.push(t);
}
};
template<class T>
inline void MinStack<T>::pop()
{
if(stackA.empty())
return ;
else
{
T t0 = stackA.top();
stackA.pop();
T t1 = stackB.top();
if(t1<=t0)
{
stackB.pop();
}
}
};
template<class T>
inline T MinStack<T>::min()
{
if(stackA.empty())
exit(-1);
else
{
return stackB.top();
}
};



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  第二题