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

資訊專欄INFORMATION COLUMN

【轉】《劍指Offer》JavaScript實戰——用兩個棧實現隊列

senntyou / 2069人閱讀

摘要:題目描述用兩個棧來實現一個隊列,完成隊列的和操作。隊列中的元素為類型。下面是實現代碼。

題目描述

????用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

解題方法
let stack1=[],//兩個數組模擬棧的行為
    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操作則要考慮棧的后入先出特性,需要先將存儲棧中的數組,推入輔助棧,然后輔助棧彈出
    while(stack1.length !== 0){
        stack2.push(stack1.pop());
    }
    return stack2.pop();
}
拓展——用兩個隊列實現一個棧的pop和push操作

? ? 本質上和上面的沒什么區別,只要抓住一點,棧是后入先出(LIFO),隊列是先入先出(FIFO)。下面是實現代碼。

let queue1=[],//兩個數組模擬隊列的行為
    queue2=[];
function push(node) {
    //推入的時候要判斷哪個隊列中有值,就推入那個隊列中
    if(queue1.length === 0){
        queue2.push(node);
    }else{
        queue1.push(node);
    }
}
 
function pop() {
    //彈出的時候判斷哪個隊列中有值,則先將該隊列中的n-1個值彈出并存入另一個隊列中,然后彈出最后一個值則為結果
    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();
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102964.html

相關文章

  • 劍指offer/LintCode494_兩個隊列實現一個

    摘要:劍指用兩個隊列實現一個棧聲明文章均為本人技術筆記,轉載請注明出處解題思路實現功能用兩個隊列實現一個棧,實現,,和方法解題思路假設有隊列和實現棧的操作實現棧操作始終用來入隊實現實現棧的方法模擬棧的過程中,保證兩個隊列中始終有一個隊列為空,另一 劍指offer/LintCode494_用兩個隊列實現一個棧 聲明 文章均為本人技術筆記,轉載請注明出處https://segmentfault....

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

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

    bawn 評論0 收藏0
  • 劍指offer】6.兩個實現隊列

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

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

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

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

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

    imtianx 評論0 收藏0

發表評論

0條評論

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