package Stack;
import java.util.*;
public class getMinStack {
private Stack <Integer> stackData;
private Stack <Integer> stackMin;
public getMinStack(){
this.stackData = new Stack <Integer> ();
this.stackMin = new Stack <Integer> ();
}
public void push(int num){
if(this.stackMin.empty() || this.stackMin.peek() > num){
this.stackMin.push(num);
}
this.stackData.push(num);
}
public void pop(){
if(this.stackData.empty()){
throw new RuntimeException("Your Stack is empty.");
}
int value = this.stackData.peek();
this.stackData.pop();
if(value == this.stackMin.peek()){
this.stackMin.pop();
}
}
public int getMin(){
return this.stackMin.peek();
}
public static void main(String [] args){
getMinStack st = new getMinStack();
st.push(3);st.push(4);st.push(5);
st.push(1);st.push(2);st.push(3);
System.out.println(st.getMin());st.pop();
System.out.println(st.getMin());st.pop();
System.out.println(st.getMin());st.pop();
System.out.println(st.getMin());st.pop();
System.out.println(st.getMin());st.pop();
System.out.println(st.getMin());st.pop();
}
}
设计一个有getMin功能的栈
最新推荐文章于 2021-12-01 10:35:57 发布