Leetcode 用兩個棧實現乙個佇列

2021-10-07 17:24:57 字數 425 閱讀 9547

實現乙個佇列說白了就是讓我們實現元素的先進先出功能,怎麼讓先進去的數實現先出功能就是這個問題的關鍵所在。

兩個棧s1,s2,s1用來作為插入,s2用來作為刪除,插入時很簡單,直接向s1中push()元素,刪除時,我們直接在s2中top()、pop(),如果s2中沒有元素存在,我們就把s1中的所有元素push到s2中,如果s1中也沒有元素就說明沒有元素可刪除,返回-1,這樣我們就實現了佇列的先進先出功能

分析出思路後**相當簡單。

class

cqueue

void

(int value)

intdeletehead()

}int tmp = s2.

top();

s2.pop();

return tmp;}}

;

用兩個棧實現佇列(leetcode)

思路 因為棧只能使用push 和pop 方法。所以使用乙個棧作為佇列,另乙個作為輔助棧。佇列負責儲存元素,輔助棧用於在需要刪除佇列中元素時,將佇列中元素按照倒序存入輔助棧中,進行pop 方法,實現佇列的 先進先出 10 32 varcqueue function param value return...

leetcode 用兩個棧實現佇列

示例 1 示例 2 1.棧的特點 棧只能在棧頂進行入棧和出棧操作,同時遵循 先入後出 原則。2.佇列的特點 佇列的一端用於入隊 另一端用於出隊 遵循 先進先出 3.用棧實現佇列的思路分析 兩個棧模擬實現乙個佇列,其中乙個棧用於入隊操作,另乙個棧用於出隊操作。支援動態增長的棧 typedef int ...

LeetCode 用兩個棧實現佇列

部落格說明 介紹劍指 offer 09.用兩個棧實現佇列 題目 示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 1 values 10000思路 根據棧先進後出的特性,我們每次往第乙個棧裡插入元素後,第乙個棧的底部元素是最...