用兩個堆棧實現一個隊列

import java.util.Stack;java

public class Solution {node

Stack<Integer> stack1 = new Stack<Integer>();

Stack<Integer> stack2 = new Stack<Integer>();
//入對列的實現
public void push(int node) {
    //將數據放到堆棧stack1中便可
    stack1.push(node);
	
}
//出對列的實現方法
public int pop() {
    //判斷stack1是否爲空,不爲空,則stack1出棧,放到stack2中
    while(!stack1.isEmpty()){
	
        stack2.push(stack1.pop());
		
    }
	//stack2的棧尾正好是stack1的棧底,取得隊列的頭一個元素
    int first = stack2.pop();
	//爲啥要作這個操做呢,由於若是再有元素進隊列,若是不把元素移回去,有元素進入,就不是隊列
	//比如作事情,看到成功,還有善後工做
    while(!stack2.isEmpty()){
	
        stack1.push(stack2.pop());
		
    }
	
    return first;
}

}code

相關文章
相關標籤/搜索