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

資訊專欄INFORMATION COLUMN

JavaScript數據結構與算法——隊列

silenceboy / 3012人閱讀

摘要:隊列數據結構隊列遵循先進先出,也稱先來先服務原則的一組有序的項。隊列在尾部添加新元素,并從頂部移除元素。最新添加的元素必須排在隊列的的末尾。

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

1.隊列數據結構

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

2.創建隊列
// 創建一個類表示隊列
function Queue() {
    // 使用數組作為存儲隊列的數據結構
    let items = [];
    // 下面聲明隊列一些可用的方法
    // 1.enqueue(elements) 向隊尾添加一個或多個項
    this.enqueue = function(element) {
        items.push(element);
    }
    // 2.dequeue() 從隊列移除元素 FIFO
    this.dequeue = function() {
        return item.shift();
    }
    // 3.front() 查看隊列頭元素
    this.front = function() {
        return items[0];
    }
    // 4.isEmpty() size() 檢查隊列是否為空
    this.isEmpty = function() {
        return items.length === 0;
    }
    this.size = function() {
        return items.length;
    }
    // 5.打印隊列元素
    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.優先隊列

實現一個有限隊列,有兩種選擇:設置優先級,然后在正確的位置添加元素;或者用入列操作添加元素,然后按照他們的優先級移除他們。

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

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

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

相關文章

  • 學習JavaScript數據結構算法(一):棧隊列

    摘要:之數組操作接下來就是數據結構的第一部分,棧。以字符串顯示棧中所有內容方法的實現說明需要往棧中添加新元素,元素位置在隊列的末尾。的前端樂園原文鏈接寒假前端學習學習數據結構與算法,棧與隊列 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第...

    Flink_China 評論0 收藏0
  • [ JavaScript ] 數據結構算法 —— 隊列

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

    Yi_Zhi_Yu 評論0 收藏0
  • JavaScript數據結構算法(二) —— 隊列

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

    xingqiba 評論0 收藏0
  • JavaScript數據結構算法》筆記——第4章 隊列

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

    callmewhy 評論0 收藏0
  • 學習數據結構算法之棧隊列

    摘要:于是翻出了機房里的這本學習數據結構與算法開始學習程序員的基礎知識。這本書用了我最熟悉的來實現各種數據結構和算法,而且書很薄,可以說是一本不錯的入門教程。隊列在頭部刪除元素,尾部添加元素。 本系列所有文章:第一篇文章:學習數據結構與算法之棧與隊列第二篇文章:學習數據結構與算法之鏈表第三篇文章:學習數據結構與算法之集合第四篇文章:學習數據結構與算法之字典和散列表第五篇文章:學習數據結構與算...

    pingan8787 評論0 收藏0

發表評論

0條評論

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