劍指offer JZ5 用兩個棧實現佇列

2021-10-09 01:37:16 字數 498 閱讀 9697

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

c++

class solution

int pop()

}t = stack2.top();

stack2.pop();

return t;

}private:

stackstack1;

stackstack2;

};

思路: 兩個棧乙個棧用來進隊,另乙個棧用來出隊

棧1用來進隊,棧2用來出隊,

進隊函式只要棧沒滿就一直進棧;

出隊函式需要先判斷棧2是否為空,棧2不為空則先儲存要出棧函式值,然後出棧;若棧2為空,則把棧1元素依次出棧然後進棧到棧2

擴充套件:兩個佇列實現棧

進棧: 元素進入佇列a

出棧:若佇列a元素為一則出隊,否則佇列a除最後乙個元素外全部出隊,然後按順序進隊到佇列b,佇列a出隊,佇列b元素全部出隊,按順序進隊到佇列a

牛客劍指OFFER JZ6 用兩個棧實現佇列

題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列rotatearray的最小元素。例如陣列 3,4,5,1,2 為 1,2,3,4,5 的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回...

5,用兩個棧實現佇列《劍指offer》

題目 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。思路 棧的特性 先進後出 佇列的特 先進先出 將棧1的內容全都彈出,然後推入棧2,彈出棧2 達到先進先出的功能 所以分為push棧 和 pop 棧 class solution int pop result st...

劍指offer 5 用兩個棧實現佇列

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。思路 棧 先進後出,佇列 先進先出 1 2 3 棧 3 2 1 1 2 3 佇列 1 2 3 stack1進棧後為1 2 3 出棧並儲存在stack2中為3 2 1,stack2出棧就和佇列一致了。push,...