劍指 Offer 09 用兩個棧實現佇列

2022-09-04 21:45:15 字數 688 閱讀 4781

輸入:[,[3],,]

輸出:[null,null,3,-1]

說實話,要想看懂和這個題目真難!

[,[3],,]

以上兩個,第乙個是具體操作,第二個是需要的引數。

cqueue:建立佇列,此時不需要引數

deletehead: 刪除對頭元素,不需要引數

[null,null,3,-1],這個是返回值

cqueue: 建立佇列,返回null

deletehead: 刪除隊頭元素(3),返回3

deletehead: 刪除隊頭元素(此時為null),返回-1

1

public

class

cqueue09

1011

public

value)

1415

public

intdeletehead() else

22return stackout.isempty() ? -1: stackout.pop();23}

24}25 }

努力去愛周圍的每乙個人,付出,不一定有收穫,但是不付出就一定沒有收穫! 給街頭賣藝的人零錢,不和深夜還在擺攤的小販討價還價。願我的部落格對你有所幫助(*^▽^*)(*^▽^*)!

如果客官喜歡小生的園子,記得關注小生喲,小生會持續更新(#^.^#)(#^.^#)。

劍指 Offer 09 用兩個棧實現佇列

劍指 offer 09.用兩個棧實現佇列 示例 1 輸入 3 輸出 null,null,3,1 示例 2 輸入 5 2 輸出 null,1,null,null,5,2 上大二時候就學的老經典了。思路 宣告兩個棧s1,s2。入佇列操作等同於入棧s1。出佇列操作分三種情況 1.兩個棧都為空,意味著隊列為...

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

示例 1 示例 2 這個地方有點繞,需要注意的是 當stack2不為空時,佇列中的元素都在stack2中 stack2中都是待刪除的元素 無論stack1中是否有元素都從2中彈出元素 頻繁的插入和刪除首選linkedlist,通常情況下不推薦使用vector和及其子類stack class cque...

劍指 Offer 09 用兩個棧實現佇列

該題使用兩個棧,乙個用於存資料,乙個用於取資料,而棧的思路是後進先出,佇列的思路是先進先出,所以需要在插入資料時將所有資料放入a棧,如果此時需要取出資料,那麼就將a內的資料都pop到b中去,假如現在我們插入了 1,2,3 到a中,那麼此時呼叫取資料的函式,將會把資料轉存到b中,b中的資料就為 3,2...