題目描述:用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
演算法思想:棧的特性是先進後出,佇列的特性是先進先出。佇列的push 可以用乙個棧的push進行操作,佇列的pop ,要pop 棧最底下的元素。可以將除最底下的元素push 到另外的乙個棧,取出棧低元素之後再進行一次push,push到原棧。
class
solution
intpop()
int a=stack2.
top();
stack2.
pop();
while
(stack2.
size()
)return a;
}private
: stack<
int> stack1;
stack<
int> stack2;
};
劍指Offer刷題 用兩個棧實現佇列
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。本題要求用兩個棧實現佇列的入隊和出隊操作。入隊 由於棧是後進先出,佇列是先進先出。所以當兩個棧堆疊起來時,就能實現先進先出。只需要把資料放入到stack1中,然後再順序輸出放入到stack2中,但由於需要考慮到連續進入...
劍指 offer 刷題 09 用兩個棧實現佇列
示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 1 values 10000思路 題目的要求是,用兩個 先進後出 的棧實現乙個 先進先出 佇列,並且只需要考慮插入和刪除操作。我們先通過乙個例子分析一下佇列的插入和刪除操作。...
劍指offer 兩個棧實現佇列
使用兩個棧實現乙個佇列。棧是先進後出,佇列是後進先出。如果只有乙個棧那麼是無法實現佇列的,但是兩個棧完全可以。如下 templateclass cqueue templatet cqueue deletehead if stack2.size 0 throw queue is empty t ret...