摘要:題目描述用兩個棧來實現(xiàn)一個隊列,完成隊列的和操作。隊列中的元素為類型。下面是實現(xiàn)代碼。
題目描述
????用兩個棧來實現(xiàn)一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。
解題方法let stack1=[],//兩個數(shù)組模擬棧的行為 stack2=[]; function push(node) { // write code here //棧是后入先出(LIFO),隊列是先入先出(FIFO) //模擬隊列的push操作,直接往棧中推入即可 //但是要考慮輔助棧中還存在值的情況,需要先將輔助棧中的值推回存儲棧中 while(stack2.length !== 0){ stack1.push(stack2.pop()); } stack1.push(node); } function pop() { // write code here //模擬隊列的pop操作則要考慮棧的后入先出特性,需要先將存儲棧中的數(shù)組,推入輔助棧,然后輔助棧彈出 while(stack1.length !== 0){ stack2.push(stack1.pop()); } return stack2.pop(); }拓展——用兩個隊列實現(xiàn)一個棧的pop和push操作
? ? 本質(zhì)上和上面的沒什么區(qū)別,只要抓住一點,棧是后入先出(LIFO),隊列是先入先出(FIFO)。下面是實現(xiàn)代碼。
let queue1=[],//兩個數(shù)組模擬隊列的行為 queue2=[]; function push(node) { //推入的時候要判斷哪個隊列中有值,就推入那個隊列中 if(queue1.length === 0){ queue2.push(node); }else{ queue1.push(node); } } function pop() { //彈出的時候判斷哪個隊列中有值,則先將該隊列中的n-1個值彈出并存入另一個隊列中,然后彈出最后一個值則為結(jié)果 if(queue1.length === 0){ while(queue2.length !== 1){ queue1.push(queue2.pop()); } return queue2.pop(); }else{ while(queue1.length !== 1){ queue2.push(queue1.pop()); } return queue1.pop(); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/102964.html
摘要:劍指用兩個隊列實現(xiàn)一個棧聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能用兩個隊列實現(xiàn)一個棧,實現(xiàn),,和方法解題思路假設(shè)有隊列和實現(xiàn)棧的操作實現(xiàn)棧操作始終用來入隊實現(xiàn)實現(xiàn)棧的方法模擬棧的過程中,保證兩個隊列中始終有一個隊列為空,另一 劍指offer/LintCode494_用兩個隊列實現(xiàn)一個棧 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault....
摘要:劍指用兩個棧模擬隊列聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能用兩個棧模擬實現(xiàn)一個隊列的,和操作解題思路假設(shè)有兩個棧隊列實現(xiàn)始終用入棧實現(xiàn)隊列和實現(xiàn)由于依次出棧并壓入中,恰好保證中順序與模擬隊列順序一致,始終保證棧頂元素為模擬 劍指offer/LintCode40_用兩個棧模擬隊列 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault.com...
摘要:題目用兩個棧來實現(xiàn)一個隊列,完成隊列的和操作。隊列中的元素為類型。基本思路棧用于入隊列存儲棧出隊列時將棧的數(shù)據(jù)依次出棧,并入棧到棧中棧出棧即棧的底部數(shù)據(jù)即隊列要出的數(shù)據(jù)。注意棧為空才能補充棧的數(shù)據(jù),否則會打亂當前的順序。 題目 用兩個棧來實現(xiàn)一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。 基本思路 棧1: 用于入隊列存儲 棧2: 出隊列時將棧1的數(shù)據(jù)依次出棧,并...
摘要:題目用兩個棧實現(xiàn)一個隊列。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù)和,分別完成在隊列尾部插入整數(shù)和在隊列頭部刪除整數(shù)的功能。刪除此堆棧頂部的對象,并將該對象作為此函數(shù)的值返回。 題目用兩個棧實現(xiàn)一個隊列。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù) appendTail 和 deleteHead ,分別完成在隊列尾部插入整數(shù)和...
摘要:二維數(shù)組中的查找在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。 1.二維數(shù)組中的查找 在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)...
閱讀 2208·2021-11-22 15:29
閱讀 4098·2021-11-04 16:13
閱讀 991·2019-08-29 16:58
閱讀 338·2019-08-29 16:08
閱讀 1455·2019-08-23 17:56
閱讀 2378·2019-08-23 17:06
閱讀 3165·2019-08-23 16:55
閱讀 2058·2019-08-23 16:22