包含min函数的栈

xiaoxiao2021-02-28  28

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

思路分析:

设置两个栈,一个用于存储数据dataStack,另一个用于存储最小值的栈minStack。入栈的时候,将node值与minStack中的peek值进行比较,若node较小,则将node压入minStack;否则,将minStack中的peek值压入minStack。

import java.util.Stack;public class Solution {    Stack<Integer> dataStack=new Stack<>();    Stack<Integer> minStack=new Stack<>();    public void push(int node) {        dataStack.push(node);        if(minStack.empty()||node<minStack.peek())        {            minStack.push(node);        }        else        {            minStack.push(minStack.peek());        }    }        public void pop() {        dataStack.pop();        minStack.pop();    }        public int top() {        return dataStack.peek();    }        public int min() {        return minStack.peek();    }}

转载请注明原文地址: https://www.6miu.com/read-2625096.html

最新回复(0)