《劍指offer》-實現一個能夠得到棧最小元素的min函數

/*
 * 定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。
 * 思路:構造一個輔助棧,保證每一次輔助棧壓入的都是當前棧的最小元素
 */
import java.util.Stack;
public class FindMinValueOfStack {
	Stack<Integer> dataStack = new Stack<Integer>();
	Stack<Integer> coopStack = new Stack<Integer>();
	
	public void push(int node) {
		dataStack.push(node);
		if(coopStack.isEmpty() || node < top()) {
			coopStack.push(node);
		}
		else {
			coopStack.push(top());
		}
	}
	    
	public void pop() {
	    if(!dataStack.isEmpty() && !coopStack.isEmpty()) {
	    	dataStack.pop();
	    	coopStack.pop();
	    }
	}
	    
	public int top() {
		return coopStack.peek();   
	}
	    
	public int min() {
	    return top();   
	}
	
	public static void main(String[] args) {
		FindMinValueOfStack t = new FindMinValueOfStack();
		t.push(3);
		System.out.println(t.min());
		t.push(4);
		System.out.println(t.min());
		t.push(2);
		System.out.println(t.min());
		t.push(3);
		System.out.println(t.min());
		t.pop();
		System.out.println(t.min());
	}
}

發佈了83 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章