刷題 棧和佇列

2022-09-19 19:30:13 字數 875 閱讀 2762

一、

因為有太多遺忘的東西了,所以做題速度會很慢

現在理解題目,把題目理解好了,然後去看題解,看完題解,在去搜尋相關知識點進行補充。

二、題目

三、理解

棧:先進後出;佇列:先進先出

要滿足題目的要求,我們要把棧底輸出出來,我們可以把棧倒著輸出,就可以滿足佇列的先進先出。

所以我們需要兩個棧來,第乙個棧是進棧,第二個棧進行佇列頭部刪除功能。

原理解釋清楚了,我們還需要理解一些細節

1.判斷第乙個棧是否為空棧,空棧就可以直接輸出-1

2.判斷第二個棧是否為空棧,不是空棧,我們要繼續輸出第二個棧裡的值

3.利用wihle的迴圈把第乙個棧裡的值給到第二個棧裡面

4.知道兩個棧都為空,**結束

四、**分析

class

cqueue

value)

intdeletehead()

if(s1.empty())

return -1

;

while(!s1.empty())

int b =s2.top();

s2.pop();

return

b; }

};/*

* * your cqueue object will be instantiated and called as such:

* cqueue* obj = new cqueue();

* int param_2 = obj->deletehead();

*/

刷題 棧和佇列(2)

一 題目 二 題目理解 1.用棧實現,所以既要滿足找到最小值,同時元素位置沒有變 我們可以用兩個棧進行實現,乙個主棧存放元素,另乙個副棧存放最小值,每當需要最小值的時候,我就top出副棧即可,需要當前位置的時候,top出主棧。三 展示 1 2 initialize your data structu...

LeetCode刷題(二) 鍊錶 棧和佇列

1.merge two sorted listsclass solution else p p next if l1 p next l2 if l2 p next l1 return head next 2.partiton list 給出乙個鍊錶和乙個值x,以x為參照將鍊錶劃分成兩部分,使所有小於...

c 刷題(3 100)數獨,棧和佇列

stack的基本操作 s.size 返回棧中的元素數量 s.empty 判斷棧是否為空,返回true或false s.push 元素 返回對棧頂部 元素 的可變 可修改 引用 s.pop 刪除棧頂元素,型別為void,但並不返回被刪除的元素 s.top 返回棧頂,不刪除 s1 s2 若成立,表明s1...