首页 > 其他 > 详细

利用最小栈实现栈存取数据时间复杂度在O(1)

时间:2020-11-03 19:10:32      阅读:33      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <string>

using namespace std;

template<typename T> 
class StackWithMin {
    stack data;
    stack minStack;
    void push(const T& val) {
        data.push(val);
        if (minStack.size() == 0 || val < minStack.top()) {
            minStack.push(val);
        }
        else {
            minStack.push(minStack.top());
        }
    }
    void pop() {
        if (data.size() == 0) {
            return;
        }
        data.pop();
        minStack.pop();
    }

    T& min() {
        if (minStack.size() == 0) {
            return;
        }
        return minStack.top();
    }
};

 

利用最小栈实现栈存取数据时间复杂度在O(1)

原文:https://www.cnblogs.com/dongma/p/13921793.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!