用兩個棧實現佇列之程式設計師面試經典

2021-07-11 16:13:29 字數 486 閱讀 1910

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

比如有棧a和棧b,在模擬佇列的時候先將所有資料依次放入棧a中,在要彈出的時候將a中的資料依次從上到下放進棧b,結束之後取出b中最上面的那個資料,然後從上到下將資料放進棧a中,這樣就用兩個棧來實現了乙個佇列的「先進先出」的特點,而棧的特點是「後進先出」

**如下:

stackstack1 = 

newstack();  

stackstack2 = new

stack();  

public

void

push(

intnode)   

public

intpop()   

intaaa=stack2.pop();  

while

(!stack2.isempty())     

return

aaa;  

}  

程式設計師面試題精選(18) 用兩個棧實現佇列

題目 某佇列的宣告如下 template class cqueue cqueue void deletehead remove a element from head private t m stack1 t m stack2 分析 從上面的類的宣告中,我們發現在佇列中有兩個棧。因此這道題實質上是要...

程式設計師面試題精選 18 用兩個棧實現佇列

題目 某佇列的宣告如下 分析 從上面的類的宣告中,我們發現在佇列中有兩個棧。因此這道題實質上是要求我們用兩個棧來實現乙個佇列。相信大家對棧和佇列的基本性質都非常了解了 棧是一種後入先出的資料容器,因此對佇列進行的插入和刪除操作都是在棧頂上進行 佇列是一種先入先出的資料容器,我們總是把新元素插入到佇列...

用兩個棧實現佇列 用兩個佇列實現棧

劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...