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

来源:互联网 发布:乌克兰 俄罗斯 知乎 编辑:程序博客网 时间:2024/06/05 09:31
import java.util.Stack;/** * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 *  * @author pomay * */public class Solution_minstack{// 数据栈Stack<Integer> dataStack = new Stack<Integer>();// 辅助栈Stack<Integer> minStack = new Stack<Integer>();Integer temp = null;// 每次压入数据栈数据与最小数据进行比较,如果更小,存入数据栈同时,存入辅助栈,并且最小值设置为该数据public void push(int node){dataStack.push(node);if (minStack.isEmpty()){minStack.push(node);temp = node;} else{temp = minStack.peek();if (node <= temp){minStack.push(node);temp = node;} else// 依然是原来那个数更小,继续存入该最小值minStack.push(temp);}}// 数据栈出栈的同时,辅助栈也出栈,保证辅助栈的栈顶一直是最小元素public void pop(){dataStack.pop();minStack.pop();}public int top(){return dataStack.peek();}public int min(){return minStack.peek();}}

阅读全文
1 0
原创粉丝点击