/**
* 面試題7:兩個棧實現隊列
* 實現:stack1Ofadd,stack2OfDelete,用先進後出實現先進先出
* 隊列新增:向stack1Ofadd插入,
* 隊列刪除:刪除之前先判斷stack2OfDelete是否爲空,
* 若爲空則將stack1Ofadd的數據全部導入再刪除
*/
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
// 向隊列添加元素
public void appendTail(int element){
// 棧1作爲添加的棧
stack1.push(element);
}
// 刪除隊列尾部元素
public Integer deleteHead(){
if(stack2.empty()){
// 若棧2爲空則把棧1的元素全部添加進棧2
while(!stack1.empty()){
stack2.push(stack1.pop());
}
}
// 執行刪除任務
if(stack2.empty()){
return null;
} else {
return stack2.pop();
}
}```
j劍指offer之兩個棧實現隊列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.