Javascript 队列

作者: ak1947 | 来源:发表于2018-07-31 21:38 被阅读0次

    队列queue是一种先进先出FIFO的列表,数据在尾部添加,在首部删除。在日常生活中队列具有广泛的应用,例如银行排队、等待公交车排队等。
    队列的核心操作有两个:enqueue入队和dequeue出队。


    队列的javascript实现

    function Queue() {
        this.dataStore = [ ];
        this.enqueue = enqueue;
        this.dequeue = dequeue;
        this.front = front;
        this.back = back;
        this.toString = toString;
        this.empty = empty;
    }
    
    function enqueue(element) {
        this.dataStore.push(element);
    }
    
    function dequeue(element) {
        return this.dataStore.shift();
    }
    
    function front() {
        return this.dataStore[0];
    }
    
    function back() {
        return this.dataStore[this.dataStore.length-1];
    }
    
    function toString() {
        var strRep = "";
        for (var i = 0; i < this.dataStore.length; ++i) {
            strRep += this.dataStore[i] + "\n";
        }
        return retStr;
    }
    
    function empty() {
        return this.dataStore.length == 0;
    }
    

    注意上面的队列实现提供了两个函数可以观察队首和队尾的元素。

    使用队列进行舞者配对

    假设有下面文本文件dancers.txt
    F Allison McMillan
    M Frank Opitz
    M Mason McMillan
    M Clayton Ruff
    F Cheryl Ferenback
    M Raymond Williams
    F Jennifer Ingram
    M Bryan Frazer
    M David Durr
    M Danny Martin
    F Aurora Adney
    将每个舞者存储在类对象Dancer中
    function Dancer(name, sex) {
       this.name = name;
       this.sex = sex;
    }
    

    优先队列priority queue

    相关文章

      网友评论

        本文标题:Javascript 队列

        本文链接:https://www.haomeiwen.com/subject/eldkvftx.html