编辑代码

/**
 * 队列是一种列表, 不同的是队列只能在队尾插入元素, 在队首删除元素。 
 * 队列用于存储按顺序排列的数据, 先进先出, 这点和栈不一样, 在栈中, 最后入栈的元素反而被优先处理。 
 * 可以将队列想象成在银行前排队的人群, 排在最前面的人第一个办理业务, 新来的人只能在后面排队,直到轮到他们为止。
 * 队列是一种先进先出(First-In-First-Out,FIFO)的数据结构。 
 * 队列被用在很多地方, 比如提交操作系统执行的一系列进程、 打印任务池等, 一些仿真系统用队列来模拟银行或杂货店里排队的顾客。
 */
class Queue {
    constructor() {
        this.dataStore = [];

    }
    // 队尾添加一个元素
    enqueue(element) {
        this.dataStore.push(element);
    }
    // 删除队首的元素
    dequeue() {
        return this.dataStore.shift();
    }
    // 获取队首的元素
    front() {
        return this.dataStore[0];
    }
    // 获取队尾的元素
    back() {
        return this.dataStore[this.dataStore.length - 1]
    }
    // 显示队列内所有的元素
    toString() {
        return this.dataStore.join('\n');
    }
    // 判断队列是否为空
    empty() {
        return !!this.dataStore.length()
    }
}

//测试程序
// var q = new Queue();
// q.enqueue("Meredith");
// q.enqueue("Cynthia");
// q.enqueue("Jennifer");
// console.log(q.toString());
// q.dequeue();
// console.log(q.toString());
// console.log("Front of queue: " + q.front());
// console.log("Back of queue: " + q.back());

// 使用队列结构进行基数排序