题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
在线代码:
import java.util.Stack;
public class Solution {
Stack datastack=new Stack();//数据栈
Stack min=new Stack();//存放最小元素的辅助栈
public void push(int node) {
if(min.empty()){
min.push(node);//如果辅助栈是空,则压入结点
}else{
int top=(int)min.peek();//拿出栈顶元素
if(node<top){
min.push(node);//比较最小的进入辅助栈
}else{
min.push(top);
}
}
datastack.push(node);
}
public void pop() {
if(!(datastack.empty())){
datastack.pop(); //数据栈不为空出栈
min.pop();
}
}
public int top() {
return (int) datastack.peek();//拿到栈顶元素
}
public int min() {
if(min.empty()){
return 0;
}else{
return (int)min.peek();
}
}
}