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
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
相关文章推荐
- 关于java.util.Scanner
- 详谈java集合框架
- java中的Radom类
- java图片居中裁剪
- Eclipse:open output file blabla.exe: Permission denied
- java贪吃蛇游戏
- Java泛型代码例子
- java中的正则表达式
- java俄罗斯方块
- java中的数字格式化
- 使用Spring Boot快速构建应用
- [尚硅谷] 尚硅谷技术文档——Struts2 面试题分析
- 安装与配置JDK
- javascrpt监听窗口关闭
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy24.newSysUser()解决方案
- Java 抽象类与接口
- Java实现网页截屏
- Java实现辩论赛计时
- Java编程中 常见的异常