演算法(5)用兩個棧來實現佇列

2021-08-31 00:21:26 字數 658 閱讀 8469

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。

/**

* 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。

*/stackstack1 = new stack();

stackstack2 = new stack();

public void push(int node)

stack1.push(node);

}public int pop()

return stack2.pop();

}

還有乙個保持stack1方法 原理是一樣的

public void push(int node) 

public int pop()

int num_pop= stack2.pop();

while (!stack2.empty())

return num_pop;

}

最後奉上草圖一枚 ,價值千金~

草圖

用兩個棧來實現佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。利用兩個棧都是後進先出的特性,可以實現負負得正的效果。即每次入棧都進入stack1,每次出棧先在stack2出棧,若stack2為空,則將stack1的元素全部出棧,按序入棧stack2,然後stack2出棧乙個元素即...

5 用兩個棧實現佇列

用兩個棧實現佇列 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。劍指offer上解題思路很清晰,看一遍解題思路基本上就可以敲出來了。class solution int pop if stack2.empty int ret stack2.top stack2.p...

5 用兩個棧實現佇列

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。時間限制 1秒 空間限制 32768k 看了一下,推薦的方法和我的思路相近。概念 思路 第乙個棧作為儲存資料用的容器,第二個棧在彈出時作為將資料顛倒的容器,倒過來彈出後,再將剩餘的資料壓入第乙個棧。class...