算法: 包含min函数的栈

* @Description 包含min函数的栈
* @问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
* @思路:
1:Stack 类中的pop方法,push方法,peek方法;
2:min方法,借助迭代器Iterator,stack.iterator(),
借助方法iterator.hasNext()的while循环,逐个比较iterator.next()和
package LG.nowcoder;

import java.util.Stack;
import java.util.Iterator;

/**
 * @Author liguo
 * @Description 包含min函数的栈
 * @问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 * @思路: 1:Stack 类中的pop方法,push方法,peek方法;
 * 2:min方法,借助迭代器Iterator,stack.iterator(),
 * 借助方法iterator.hasNext()的while循环,逐个比较iterator.next()和
 * @Data 2018-08-14 14:36
 */
public class Solution9 {

    Stack <Integer> stack = new Stack <Integer>();

    public void push(int node) {
        stack.push( node );
    }

    public void pop() {
        stack.pop();
    }

    public int top() {
        return stack.peek();
    }

    public int min() {
        int min = stack.peek();
        int temp = 0;
        Iterator <Integer> iterator = stack.iterator();         
        while (iterator.hasNext()) {                //循环比较大小;
            temp = iterator.next();     
            if (min > temp) {           
                min = temp;         
            }
        }
        return min;
    }
}

原文地址:https://www.cnblogs.com/liguo-wang/p/9474704.html