题目21:包含min()方法的栈

来源:互联网 发布:seo在哪里可以自学 编辑:程序博客网 时间:2024/06/04 20:11

支持min()方法的栈,这种方法相对比较省空间。

import java.util.Random;import java.util.Stack;public class StackWithMin extends Stack<Integer> {Stack<Integer> stack;public StackWithMin(){stack=new Stack<Integer>();}public void push(int value){if(value<=min()){stack.push(value);}super.push(value);}public Integer pop(){int value=super.pop();if(value==min()){stack.pop();}return value;}public int min(){if(stack.empty()){return Integer.MAX_VALUE;}else{return stack.peek();}}public static void main(String[] args) {StackWithMin sWithMin=new StackWithMin();for(int i=0;i<10;i++){Random random=new Random();int n=random.nextInt()%100;System.out.print(n+" ");sWithMin.push(n);}System.out.println();for(int i=0;i<10;i++){System.out.print(sWithMin.min()+" ");sWithMin.pop();}}}/*output example9 -55 36 -15 0 -89 9 -67 33 -99 -99 -89 -89 -89 -89 -55 -55 -55 -55 9 */

0 0
原创粉丝点击