開始學(xué)算法(刷算法題)過程記錄 8
2022-05-11 11:15 作者:學(xué)途壓力大 | 我要投稿
題目描述:用兩個(gè)棧實(shí)現(xiàn)隊(duì)列
題目鏈接:https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6
題目思路:插入時(shí)壓入棧1。彈出時(shí)棧2不為空,彈出棧2棧頂元素,如果為空,把棧1逐個(gè)出棧入棧2,再?gòu)棾鰲?棧頂元素。
利用了2個(gè)棧互相壓入彈出可以改變頭尾順序的特點(diǎn)??梢韵胂蟪梢粭l線在2個(gè)桶之間來回彈,第一個(gè)桶尾朝下,彈到另一個(gè)桶就是尾朝上了。再?gòu)椈厝ゾ褪俏渤隆?/p>
題目實(shí)現(xiàn):
push 從數(shù)組尾插元素 。pop從數(shù)組尾彈出元素,返回彈出的元素。
相關(guān)題目:用2個(gè)隊(duì)列實(shí)現(xiàn)一個(gè)棧
解題思路:隊(duì)列先進(jìn)后出,棧先進(jìn)先出。可以把隊(duì)列前后反向放置成一個(gè)U型,如下圖所示

題目實(shí)現(xiàn):
unshift()從數(shù)組頭插入元素,pop()從數(shù)組尾彈出元素,返回彈出的元素
標(biāo)簽: