第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用兩個堆棧實現(xiàn)隊列?

如何使用兩個堆棧實現(xiàn)隊列?

假設(shè)我們有兩個堆棧,沒有其他臨時變量。是否可以僅使用兩個堆棧來“構(gòu)造”隊列數(shù)據(jù)結(jié)構(gòu)?
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

保留2疊,我們稱它們?yōu)閕nbox和outbox。


入隊:


將新元素推到 inbox

出隊:


如果outbox為空,則通過從中彈出每個元素inbox并將其推入來重新填充它outbox


彈出并從返回頂部元素 outbox


使用此方法,每個元素將在每個堆棧中恰好出現(xiàn)一次-意味著每個元素將被推入兩次并彈出兩次,從而提供了攤銷的固定時間操作。


這是Java的實現(xiàn):


public class Queue<E>

{


    private Stack<E> inbox = new Stack<E>();

    private Stack<E> outbox = new Stack<E>();


    public void queue(E item) {

        inbox.push(item);

    }


    public E dequeue() {

        if (outbox.isEmpty()) {

            while (!inbox.isEmpty()) {

               outbox.push(inbox.pop());

            }

        }

        return outbox.pop();

    }


}


查看完整回答
反對 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 1281 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號