您的位置:首页 > 编程语言 > Java开发

java之包含min函数的栈

2015-06-16 21:48 399 查看
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的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);
else
m_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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: