国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【轉(zhuǎn)】《劍指Offer》JavaScript實戰(zhàn)——用兩個棧實現(xiàn)隊列

senntyou / 2057人閱讀

摘要:題目描述用兩個棧來實現(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

相關(guān)文章

  • 劍指offer/LintCode494_兩個隊列實現(xiàn)一個

    摘要:劍指用兩個隊列實現(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....

    rose 評論0 收藏0
  • 劍指offer/LintCode40_兩個模擬隊列

    摘要:劍指用兩個棧模擬隊列聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能用兩個棧模擬實現(xiàn)一個隊列的,和操作解題思路假設(shè)有兩個棧隊列實現(xiàn)始終用入棧實現(xiàn)隊列和實現(xiàn)由于依次出棧并壓入中,恰好保證中順序與模擬隊列順序一致,始終保證棧頂元素為模擬 劍指offer/LintCode40_用兩個棧模擬隊列 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault.com...

    bawn 評論0 收藏0
  • 劍指offer】6.兩個實現(xiàn)隊列

    摘要:題目用兩個棧來實現(xiàn)一個隊列,完成隊列的和操作。隊列中的元素為類型。基本思路棧用于入隊列存儲棧出隊列時將棧的數(shù)據(jù)依次出棧,并入棧到棧中棧出棧即棧的底部數(shù)據(jù)即隊列要出的數(shù)據(jù)。注意棧為空才能補充棧的數(shù)據(jù),否則會打亂當前的順序。 題目 用兩個棧來實現(xiàn)一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。 基本思路 棧1: 用于入隊列存儲 棧2: 出隊列時將棧1的數(shù)據(jù)依次出棧,并...

    fredshare 評論0 收藏0
  • #yyds干貨盤點#劍指 Offer 09. 兩個實現(xiàn)隊列

    摘要:題目用兩個棧實現(xiàn)一個隊列。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù)和,分別完成在隊列尾部插入整數(shù)和在隊列頭部刪除整數(shù)的功能。刪除此堆棧頂部的對象,并將該對象作為此函數(shù)的值返回。 題目用兩個棧實現(xiàn)一個隊列。隊列的聲明如下,請實現(xiàn)它的兩個函數(shù) appendTail 和 deleteHead ,分別完成在隊列尾部插入整數(shù)和...

    RichardXG 評論0 收藏0
  • 劍指offer(javascript版)

    摘要:二維數(shù)組中的查找在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹并返回。 1.二維數(shù)組中的查找 在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)...

    imtianx 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<