Javascript 队列

队列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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容