題目位址
class
cqueue
public
void
(int value)
//如果兩個棧都是空的,返回-1
//如果有元素的話,如果2號棧不空,則彈出2號棧的元素即可
// 如果2號棧空,最早入棧的元素在1號棧的底部,將1號棧的元素都倒到二號棧,彈出2號棧最上面的元素。
public
intdeletehead()
if(!stack2.
isempty()
)while
(!stack1.
isempty()
)return stack2.
pop();
}}/** * your cqueue object will be instantiated and called as such:
* cqueue obj = new cqueue();
* int param_2 = obj.deletehead();
*/
面試題09 用兩個棧實現佇列
題目 演算法思路 棧的特性是先進後出,佇列是先進先出,題目要求通過兩個棧來實現佇列,說明必有乙個是輔助棧 可以看做佇列 另外乙個棧用於儲存資料。根據棧的特性,第乙個棧底部元素是最先入棧的元素,同時也是第二個棧最先刪除的元素。每次向第乙個棧插入元素時,如果第二個棧不為空,需要先將第二個棧的元素依次出棧...
兩個面試題
1.實現乙個lite版的字串替換函式 c c char strreplace char str,const char sub,const char rep 限制條件和要求如下 1.其中str為原字串,sub為待被替換的子串。為簡單起見,假定字串sub和rep長度一樣 2.直接對原字串str進行修改並...
劍指Offer 面試題09 用兩個棧實現佇列
示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 解題思路 棧無法實現佇列功能 棧底元素 對應隊首元素 無法直接刪除,需要將上方所有元素出棧。雙棧可實現列表倒序 設有含三個元素的棧 a 1,2,3 和空棧 b 若迴圈執行 a...