欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《三》队列

程序员文章站 2022-03-05 12:48:54
...

队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素,队列用于存储按顺序排列的数据,先进先出。

可以将队列想象成在银行前排队的人群,排在最前面的人第一个办理业务,新来的人只能在后面排队,直到轮到他们为止。

队列是一种先进先出的数据结构。队列被用在很多地方,比如提交操作系统执行的一系列进程、打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客。

一个用数组实现的队列:

首先创建一个构造函数:

function Queue() {
    this.dataStore = [];
    this.enqueue = enqueue;
    this.dequeue = dequeue;
    this.front = front;
    this.back = back;
    this.empty = empty;
    this.toString = toString;
}
enqueue():向队尾添加一个元素
function enqueue(element) {
    this.dataStore.push(element);
}
dequeue():删除队首的元素
function dequeue() {
    return this.dataStore.shift();
}
front():读取队首的元素
function front() {
    return this.dataStore[0];
}
back():读取队尾的元素
function back() {
    return this.dataStore[this.dataStore.length-1];
}
empty():判断队列是否为空
function empty() {
    if (this.dataStore.length == 0) {
       return true;
    } else {
       return false;
    }
 }
toString():显示队列内的所有元素
function toString() {
    var retStr = "";
    for (var i = 0; i < this.dataStore.length; ++i) {
       retStr += this.dataStore[i] + "\n";
    }
    return retStr;
}

使用队列:

方块舞的舞伴分配问题:

使用队列来模拟跳方块舞的人。