1. 程式人生 > 實用技巧 >劍指offer JZ-5

劍指offer JZ-5

題目描述

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

思路

比較簡單,stack1用來存放每次push進來的資料

棧是先進後出的資料結構,而佇列是先進先出的資料結構

在用棧模擬佇列的pop時,將stack1彈出的元素暫時存放在stack2中

在stack1彈出最早壓入棧中的元素後,再將stack2的中的元素一一彈出,並壓入stack1中即可

class Solution
{
public:
    void push(int node) {
        stack1.push(node);
    }

    int pop() {
        
int Size = stack1.size(); while(Size > 1) { int val = stack1.top(); stack1.pop(); stack2.push(val); Size--; } int val = stack1.top(); stack1.pop(); while(!stack2.empty()) { stack1.push(stack2.top()); stack2.pop(); }
return val; } private: stack<int> stack1; stack<int> stack2; };
View Code