包含min函数的栈

来源:互联网 发布:php跳转id代码 编辑:程序博客网 时间:2024/06/03 03:40

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

发现很多用java的代码很多比c++短,喵~

实现几个函数的功能

//新建一辅助栈,使得辅助栈从上到下存储的应该是最小值->次小值->次次小值……class Solution {public:    stack<int> dataStack, minStack;    void push(int val) {        //将元素压入储存数据的栈        dataStack.push(val);        //当储存最小元素的栈没有元素的时候,将当前元素压入最小元素栈。否则,先比较大小,压入较小的元素入最小元素栈。        if (minStack.empty()) {            minStack.push(val);        }        else{            int min = minStack.top();            val<=min?minStack.push(val):minStack.push(min);        }             }    //pop的时候,数据栈辅助栈均弹出顶元素。    void pop() {        dataStack.pop();        minStack.pop();    }    int top() {        return  dataStack.top();    }    int min() {        return minStack.top();    }};



1 0