劍指offer 05兩個棧構建佇列,兩個佇列構建棧

2021-09-11 08:41:52 字數 617 閱讀 6260

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

js裡用陣列可以模擬棧:push pop,也可以模擬佇列push,shift

資料存放在其中乙個棧裡面,push操作直接push,pop操作,先把有資料的棧全部pop出來,並push到另乙個陣列裡面,這樣直接pop,就是佇列的頭。

/*用兩個陣列來模擬兩個棧*/

function queue()

this.stack1.push(node);

}this.pop=function ()

return this.stack2.pop();

}}

push的時候,資料在哪個佇列就push進哪個佇列;

pop的時候,把n-1個shift掉,最後乙個shift掉並且返回就可以。

/*兩個佇列實現乙個棧*/

function stack()else

} this.pop=function ()

return this.q2.shift();

}else

return this.q1.shift();

}}}

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

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。入隊 棧1入棧,相當於元素入隊 出隊 判斷棧2是否為空,如果為空,把棧1的元素壓入棧2 棧2出棧,相當於元素出隊 class solution 解題思路 入隊 棧1入棧,相當於元素入隊 出隊 判斷棧2是否為空,如果為空...

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

題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。時間限制 c c 1秒,其他語言2秒 空間限制 c c 64m,其他語言128m 解法分析 棧後進先出,佇列先進先出,可用兩個棧spush和spop分別實現push和pop操作,push時node進spush...

劍指offer05 用兩個棧實現佇列

1.佇列 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。2.棧3.python物件導向程式設計 coding utf 8 class ...