題目描述
演算法分析
stack1只用來插入元素,stack2只用來刪除元素;
每次刪除元素時,若stack2為空,則將stack1中所有元素依次壓入stack2中;否則,直接從stack2中刪除站頂元素。
提交**:
class solution
int pop()
} result = stack2.top();
stack2.pop();
return result;
}private:
stackstack1;
stackstack2;
};
測試**:
#include#includeusing namespace std;
/*// 面試題9:用兩個棧實現佇列
// 題目:用兩個棧實現乙個佇列。佇列的宣告如下,請實現它的兩個函式push
// 和pop,分別完成在佇列尾部插入結點和在佇列頭部刪除結點的功能。
*/// ********************測試**********************
void test(int actual, int expected)
int main(int argc, char* argv)
劍指offer(9) 用兩個棧實現佇列
首先佇列是 先進先出 原則,棧是 先進後出 的原則 接下來設計兩個棧,分為別positive和negative 當最初有元素要入佇列的時候,我們讓其進入positive棧中 如果需要出佇列了,那麼我們可以採取將positive中除了最底層的所有元素依次pop出來放進negative中 然後再將pos...
劍指Offer 9 用兩個棧實現佇列
準備兩個棧,稱為a和b,加元素的時候加進a,刪除元素時要考慮情況 假如a中已經有了幾個元素,而b中沒有元素 此時想要刪除元素並且滿足佇列的特性,只需要把a中的元素逐個彈出壓入到bb.push a.pop 直到a為空 此時b中元素的順序和之前的a就是反過來的,此時彈出b的元素即可 如果要刪除資料時,b...
劍指offer 9 用兩個棧實現佇列
用兩個棧實現乙個佇列。佇列的宣告如下,尾部插入整數和在佇列頭部刪除整數的功能。若佇列中沒有元素,deletehead 操作返回 1 leetcode 示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 題目理解 輸入 cque...