JavaScript 队列

发布于 2024-04-09 19:40:10 字数 1863 浏览 32 评论 0

队列是一种 FIFO(First In First Out),队列和栈结构不同,栈是一种后进先出的结构,而队列是一种先进先出的结构。队列也是一种表结构,不同的是队列只能在队尾插入元素,在队首删除元素,可以将队列想象成在柜台排号,排在前面的人拥有优先服务权。队列用在很多地方,比如提交操作系统执行一系列的进程,打印任务池等,一些仿真系统使用队列来模拟银行或者超时里排队的顾客。

1、创建

使用数组创建一个用于存储队列中元素的数据结构。

function Queue(){
    //这里是属性和方法
    this.dataStore = [];
    this.enqueue = enqueue;
    this.dequeue = dequeue;
    this.front = front;
    this.back = back;
    this.toString = toString;
    this.empty = empty;
}

//取出数组的最后一个元素
function back(){
    return this.dataStore[this.dataStore.length-1];
}

//返回数组中元素的个数
function count(){
    return this.dataStore.length;
}

2、添加

enqueue(element(s)):向队列尾部添加一个(或多个)新的项。

//  入队,就是在数组的末尾添加一个元素
function enqueue(element){
    this.dataStore.push(element);
}

3、移除

dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。

// 出队,就是删除数组的第一个元素
function dequeue(){
    return this.dataStore.shift();
}

4、取出第一个元素

front():返回队列中第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与 Stack 类的 peek 方法非常类似)。

// 取出数组的第一个元素
function front(){
    return this.dataStore[0];
}

5、判断是否为空

isEmpty():如果队列中不包含任何元素,返回 true,否则返回 false。

// 判断是否为空
function empty(){
    if(this.dataStore.length == 0){
        return true;
    }else{
        return false;
    }    
}

6、打印队列

function toString(){
    var retStr = "";
    for (var i=0; i<this.dataStore.length; ++i) {
        retStr += this.dataStore[i] + "&nbsp;"
    }
    return retStr;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

狠疯拽

暂无简介

0 文章
0 评论
288 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文