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

資訊專欄INFORMATION COLUMN

JavaScript數(shù)據(jù)結(jié)構(gòu)與算法——隊(duì)列

silenceboy / 3018人閱讀

摘要:隊(duì)列數(shù)據(jù)結(jié)構(gòu)隊(duì)列遵循先進(jìn)先出,也稱先來(lái)先服務(wù)原則的一組有序的項(xiàng)。隊(duì)列在尾部添加新元素,并從頂部移除元素。最新添加的元素必須排在隊(duì)列的的末尾。

隊(duì)列和棧非常類似,但是使用了不同的原則,而非后進(jìn)先出,是先進(jìn)先出。

1.隊(duì)列數(shù)據(jù)結(jié)構(gòu)

隊(duì)列遵循FIFO(先進(jìn)先出,也稱先來(lái)先服務(wù))原則的一組有序的項(xiàng)。隊(duì)列在尾部添加新元素,并從頂部移除元素。最新添加的元素必須排在隊(duì)列的的末尾。隊(duì)列示意圖如下:

2.創(chuàng)建隊(duì)列
// 創(chuàng)建一個(gè)類表示隊(duì)列
function Queue() {
    // 使用數(shù)組作為存儲(chǔ)隊(duì)列的數(shù)據(jù)結(jié)構(gòu)
    let items = [];
    // 下面聲明隊(duì)列一些可用的方法
    // 1.enqueue(elements) 向隊(duì)尾添加一個(gè)或多個(gè)項(xiàng)
    this.enqueue = function(element) {
        items.push(element);
    }
    // 2.dequeue() 從隊(duì)列移除元素 FIFO
    this.dequeue = function() {
        return item.shift();
    }
    // 3.front() 查看隊(duì)列頭元素
    this.front = function() {
        return items[0];
    }
    // 4.isEmpty() size() 檢查隊(duì)列是否為空
    this.isEmpty = function() {
        return items.length === 0;
    }
    this.size = function() {
        return items.length;
    }
    // 5.打印隊(duì)列元素
    this.print = function() {
        console.log(items.toString())
    } 
}

使用Queue類

let queue = new Queue();
console.log(queue.isEmpty()); // true
// 添加元素
queue.enqueue("june");
queue.enqueue("jack");

queue.print(); // "june,jack"
console.log(queue.size()); // 2
// 刪除元素
queue.dequeue();
queue.dequeue();
queue.print(); // ""
3.優(yōu)先隊(duì)列

實(shí)現(xiàn)一個(gè)有限隊(duì)列,有兩種選擇:設(shè)置優(yōu)先級(jí),然后在正確的位置添加元素;或者用入列操作添加元素,然后按照他們的優(yōu)先級(jí)移除他們。

function PriorityQueue() {
    let items = [];
    // 設(shè)置添加元素的類
    function QueueElement(element, priority) {
        this.element = element;
        this.priority = priority;
    }
    // 優(yōu)先級(jí)添加
    this.enqueue = function(element, priority) {
        let queueElement = new QueueElement(element, priority);
        
        let added = false;
        // 遍原隊(duì)列中的元素,如果新添加元素的優(yōu)先級(jí)的值(優(yōu)先級(jí)大,priority值小)小于當(dāng)前遍歷原始的優(yōu)先級(jí)的值(即新添加元素優(yōu)先級(jí)大于當(dāng)前遍歷元素的優(yōu)先級(jí)),則在其前面添加新的元素
        for(let i=0; i
4.隊(duì)列的應(yīng)用——擊鼓傳花           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/101688.html

相關(guān)文章

  • 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)算法(一):棧隊(duì)列

    摘要:之?dāng)?shù)組操作接下來(lái)就是數(shù)據(jù)結(jié)構(gòu)的第一部分,棧。以字符串顯示棧中所有內(nèi)容方法的實(shí)現(xiàn)說(shuō)明需要往棧中添加新元素,元素位置在隊(duì)列的末尾。的前端樂(lè)園原文鏈接寒假前端學(xué)習(xí)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,棧與隊(duì)列 本系列的第一篇文章: 學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(一),棧與隊(duì)列第二篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(二):鏈表第三篇文章:學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法(三):集合第...

    Flink_China 評(píng)論0 收藏0
  • [ JavaScript ] 數(shù)據(jù)結(jié)構(gòu)算法 —— 隊(duì)列

    摘要:而且目前大部分編程語(yǔ)言的高級(jí)應(yīng)用都會(huì)用到數(shù)據(jù)結(jié)構(gòu)與算法以及設(shè)計(jì)模式。隊(duì)列在尾部添加新元素,并從頂部移除元素。最新添加的元素必須排在隊(duì)列的末尾。 前言 JavaScript是當(dāng)下最流行的編程語(yǔ)言之一,它可以做很多事情: 數(shù)據(jù)可視化(D3.js,Three.js,Chart.js); 移動(dòng)端應(yīng)用(React Native,Weex,AppCan,Flutter,Hybrid App,小程...

    Yi_Zhi_Yu 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)算法(二) —— 隊(duì)列

    摘要:簡(jiǎn)介隊(duì)列遵循的是先進(jìn)先出的原則的一組有序的項(xiàng)。隊(duì)列從尾部添加新元素,并從頂部移除元素,最新添加的元素必須排列在隊(duì)列的末尾。它的想法來(lái)自于生活中排隊(duì)的策略。隊(duì)列不做任何變動(dòng)。 簡(jiǎn)介 隊(duì)列遵循的是FIFO(先進(jìn)先出)的原則的一組有序的項(xiàng)。 隊(duì)列從尾部添加新元素,并從頂部移除元素,最新添加的元素必須排列在隊(duì)列的末尾。 它的想法來(lái)自于生活中排隊(duì)的策略。顧客在付款結(jié)賬的時(shí)候,按照到來(lái)的先后順序排...

    xingqiba 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)算法》筆記——第4章 隊(duì)列

    摘要:隊(duì)列遵循原則的一組有序的項(xiàng)向隊(duì)列尾部添加一個(gè)項(xiàng)移除隊(duì)列的第一項(xiàng)返回隊(duì)列中第一項(xiàng),對(duì)隊(duì)列本身不做修改判斷隊(duì)列是否為空返回隊(duì)列包含的元素個(gè)數(shù)優(yōu)先隊(duì)列根據(jù)優(yōu)先級(jí)添加項(xiàng)最小優(yōu)先隊(duì)列移除隊(duì)列的第一項(xiàng)返回隊(duì)列中第一項(xiàng),對(duì)隊(duì)列本身不做修改判斷隊(duì)列是否 隊(duì)列遵循FIFO(First In First Out)原則的一組有序的項(xiàng) let Queue = (function () { let it...

    callmewhy 評(píng)論0 收藏0
  • 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)算法之棧隊(duì)列

    摘要:于是翻出了機(jī)房里的這本學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法開(kāi)始學(xué)習(xí)程序員的基礎(chǔ)知識(shí)。這本書用了我最熟悉的來(lái)實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)和算法,而且書很薄,可以說(shuō)是一本不錯(cuò)的入門教程。隊(duì)列在頭部刪除元素,尾部添加元素。 本系列所有文章:第一篇文章:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法之棧與隊(duì)列第二篇文章:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法之鏈表第三篇文章:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法之集合第四篇文章:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法之字典和散列表第五篇文章:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算...

    pingan8787 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<