包含min函数的栈

来源:互联网 发布:js防水涂料厚度要求 编辑:程序博客网 时间:2024/06/05 12:00

题目描述

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

用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数

则min依次入栈,5,  4,  3,no,no, no, no, 1(no代表此次不入栈

每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不入栈


class Solution {public:    stack<int> data, mindata;  //data为存储数据的栈,mindata为存储最小值的栈    void push(int value) {        if(mindata.empty())            mindata.push(value);        else{            int min = mindata.top();            //push时将栈顶值和value较小值入栈            min >= value ? mindata.push(value) : mindata.push(min);        }        data.push(value);    }    void pop() {        mindata.pop();        data.pop();    }    int top() {        return data.top();    }    int min() {        return mindata.top();    }};












原创粉丝点击