題目:用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。佇列是先入先出,堆疊是先入後出,通過兩個堆疊的push和pop操作可以實現堆疊的元素反轉,從而達到先入先出的效果。
假設stack1是正常的棧,statck2是逆序的棧(和佇列順序一致),對於push操作,要保證新push的元素位於所有元素的最後,所以要先將stack2的元素pop出來push進stack1裡,然後將新元素push,對於pop操作,要保證pop的元素的最先push進去的,相當於pop出棧底元素,所以要先將stack1的元素pop出來push進stack2,然後stack2pop出元素。
完整**如下:
stackstack1 = new stack();
stackstack2 = new stack();
public void push(int node)
stack1.push(node);
}
public int pop()
return stack2.pop();
}
牛客網刷題 用兩個棧實現佇列
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。棧 先進後出 佇列 先進先出 push 1,2,3 pop 3,2,1 因為棧跟佇列出入的順序是相反的,所以我們可以借助兩個棧解決問題,stack1負責儲存push的資料,stack2負責在pop操作的時候,將stat...
用兩個棧實現佇列 用兩個佇列實現棧
劍指offer 面試題7 用兩個棧實現佇列。templateclass cqueue 我們試著用兩個棧來模擬佇列的操作,發現如下可行操作 完整 實現 面試題7 用兩個棧實現佇列 分別完成在隊尾插入結點和在隊頭刪除結點的功能。date 2014 06 27 include include includ...
牛客《劍指Offer》 用兩個棧實現佇列
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。棧的資料是後進先出的,所以利用兩個棧的配合可以實現佇列先進先出的效果。所有存入的資料,均壓入棧stack1。要取出資料時,開始stack2為空,將所有stack1中的資料取出,以此壓入stack2 中,這些資料再從st...