劍指offerQ5 用兩個棧來實現乙個佇列

2021-10-02 14:38:07 字數 471 閱讀 1581

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

佇列:是一種特殊的線性表 先進先出

棧stack:堆疊 後進先出

push :在頂部插入乙個元素

pop:在頂部刪除乙個元素

堆heap 是在程式執行時申請記憶體,動態分配記憶體

參考文章:

用兩個棧來實現佇列

push:直接push進stack1

pop:先將stack1中的元素全部轉入stack2中 從stack2棧頂彈出

注意這時可以要繼續push進新的數字

觀察stack2棧頂是否存在數字,即棧是否為空;不為空則先彈出stack2中的數字,空之後再將stack1中所有數字全部轉入stack2中

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,...

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

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。解題思路 需要用棧來模擬佇列的push和pop操作。要知道,棧是先進後出,而佇列是先進先出,所以用棧實現佇列的時候,需要兩個棧,進棧可以直接進棧就ok,但是需要首先將兩個棧合為乙個棧,但是出棧的話,需要將原先...