用兩個棧來實現乙個佇列,完成佇列的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,...