c++实现栈的push、pop、min

c++实现栈的push、pop、min

在c++中用一个数组和一个变量(记录栈顶位置)来实现栈结构

//c++实现栈的push、pop、min
//用两个栈实现
//记录每一次插入的min状态 
#include<iostream> 
#include<stack>
#include<algorithm>
using namespace std;
class Stack
{
    public:
        void push(int value)
        {
            data.push(value);
            if(min.empty()||value<min.top()) //小数栈为空或者要插入的元素是最小值,插入小数栈栈顶
            {
                min.push(value);
            }
            else
            {
                min.push(min.top());
            } 
        }
        void pop()
        {
            if(!data.empty()&&!min.empty())
            {
                data.pop();

                min.pop(); //min里保存着每一个状态的min 
            }
        }
        int getmin()
        {
            if(min.empty())
            {
                return 0;
            }
            else
            {
                return min.top();
            }
        }

    private:
        stack<int> data;
        stack<int> min;     //装每一个状态的min 
};
int main()
{
    Stack s;
    s.push(1);
    s.push(2);
    s.push(3);
    s.push(4);
    s.push(5);
    s.push(6);
    s.push(0);
    int ans = s.getmin();
    cout<<ans<<endl;
    return 0;
}

c++实现栈的push、pop、min

原文链接: https://www.cnblogs.com/serendipity-my/p/12828828.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c++实现栈的push、pop、min

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/346142

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午3:44
下一篇 2023年3月2日 上午3:45

相关推荐