java之包含min函数的栈

来源:互联网 发布:软件著作权 无形资产 编辑:程序博客网 时间:2024/06/18 04:03

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push,pop的时间复杂度都是o(1).

package Stackqueue;import java.util.Stack;public class StackMinMain {Stack<Integer> m_data = new Stack<Integer>();Stack<Integer> m_min = new Stack<Integer>();public void push(int value) {m_data.push(value);if (m_min.size() == 0 || value < m_min.firstElement())m_min.push(value);elsem_min.push(m_min.firstElement());}public void pop() {assert (m_data.size() > 0 && m_min.size() > 0);m_data.pop();m_min.pop();}public int min() {assert (m_data.size() > 0 && m_min.size() > 0);return m_min.peek();}public static void main(String[] args) {StackMinMain stackMinMain = new StackMinMain();int[] a = { 3, 4, 2, 1 };for (int i = 0; i < a.length; i++)stackMinMain.push(a[i]);System.out.println(stackMinMain.min());}}
结果显示:

1

0 0
原创粉丝点击