您的位置:首页 > 其它

可查询最值的栈

2016-05-16 21:57 337 查看
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

代码如下:

定义两个栈,一个stackData,一个stackMin。将数组中的元素一个个压入stackData栈的时候,如果第一次压入栈,则将第一个元素也压入到stackMin栈中去,然后继续压入第二个元素到stackData里面,在压入的时候需要判断一下压入的值是否比stackMin中栈顶的值大,如果大,则压入一个和栈顶一样的元素进入stackMin,如果小,则也压入第二个元素到stackMin,依次类推直到最后一个元素截止就能得到栈最小元素。

package com.stack;

import java.util.Stack;
public class Solution {
public  Stack<Integer> stackData =new Stack<Integer>();
public  Stack<Integer> stackMin  =new Stack<Integer>();

public void push(int node) {
stackData.push(node);
if(stackMin.isEmpty()){
stackMin.push(node);
}else if(node< stackMin.peek().intValue()){
stackMin.push(node);
}else{
stackMin.push(stackMin.peek());
}
}

public  void pop() {
stackData.pop();
stackMin.pop();
}

public  int top() {
return stackData.pop();
}

public  int min() {
return stackMin.peek();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: