20包含min函数的栈

 

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
 
建一个辅助栈,把每次最小最小的元素(之前最小元素,与当前新入栈的元素比较)放在辅助栈里。
 
 1 import java.util.Stack;
 2 
 3 public class Solution {
 4     Stack<Integer> stack = new Stack<Integer>();
 5     Stack<Integer> min = new Stack<Integer>();
 6     public void push(int node) {
 7         if(stack.empty()){
 8             stack.push(node);
 9             min.push(node);
10         }
11         else{
12             if(node < min.peek())
13                 min.push(node);
14             else 
15                 min.push(min.peek());
16             stack.push(node);
17             }
18         
19     }
20     
21     public void pop() {
22         stack.pop();
23         min.pop();
24     }
25     
26     public int top() {
27         return stack.peek();
28     }
29     
30     public int min() {
31         return min.peek();
32     }
33 }

 

posted @ 2017-11-20 09:13  乐乐章  阅读(141)  评论(0编辑  收藏  举报