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

定义栈的数据结构,要求添加一个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();
     }
};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值