用兩個棧來實現乙個佇列,完成佇列的push和pop操作。
佇列中的元素為int型別。
資料結構:棧、佇列棧1元素入棧2,先入先出。
參考部落格:
在c++標準庫(stl)中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。
棧(stack)說明及舉例:
使用棧,要先包含標頭檔案 : #include
定義棧,以如下形式實現: stack s; 其中type為資料型別(如 int,float,char等)。
棧的主要操作:
s.push(item); //將item壓入棧頂
s.pop(); //刪除棧頂的元素,但不會返回
s.top(); //返回棧頂的元素,但不會刪除
s.size(); //返回棧中元素的個數
s.empty(); //檢查棧是否為空,如果為空返回true,否則返回false
棧操作舉例:
佇列(queue)說明及舉例:
使用佇列,要先包含標頭檔案 : #include
定義佇列,以如下形式實現: queue q; 其中type為資料型別(如 int,float,char等)。
佇列的主要操作:
q.push(item) //將item壓入佇列尾部
q.pop() //刪除隊首元素,但不返回
q.front() //返回隊首元素,但不刪除
q.back() //返回隊尾元素,但不刪除
q.size() //返回佇列中元素的個數
q.empty() //檢查佇列是否為空,如果為空返回true,否則返回false
佇列操作舉例
棧1元素入棧2,先入先出
使用兩個棧來實現佇列的操作。
};兩個佇列實現棧:
class solution
}else}}
void pop()
int top()
bool empty()
private:
queue
queue1;
queue
queue2;
};
(C )劍指offer 5 用兩個棧實現佇列
用兩個棧來做,乙個主棧,用來儲存資料 乙個輔助棧,用來當快取 時間複雜度o n push x 我們直接將x插入主棧中即可 pop 此時我們需要彈出最先進入棧的元素,也就是棧底元素。我們可以先將所有元素從主棧中彈出,壓入輔助棧中。則輔助棧的棧頂元素就是我們要彈出的元素,將其彈出即可。然後再將輔助棧中的...
劍指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,...
劍指offer 5 用兩個棧實現佇列
題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 需要用棧來模擬佇列的push和pop操作。要知道,棧是先進後出,而佇列是先進先出,所以用棧實現佇列的時候,需要兩個棧,進棧可以直接進棧就ok,但是需要首先將兩個棧合為乙個棧,但是出棧的話,需要將原先...