当前位置: 代码网 > it编程>编程语言>Javascript > Typescript实现队列的示例代码

Typescript实现队列的示例代码

2024年09月06日 Javascript 我要评论
队列的概念队列是一个先进先出(fifo)的数据结构。由于ts中没有队列,所以我们使用数组来模拟一个队列并实现队列的所有功能。队列的操作enqueue(element):向队列尾部添加一个新的项dequ

队列的概念

  • 队列是一个先进先出(fifo)的数据结构。
  • 由于ts中没有队列,所以我们使用数组来模拟一个队列并实现队列的所有功能。

队列图示

队列的操作

  • enqueue(element):向队列尾部添加一个新的项
  • dequeue():移除队列的第一项,并且返回被移除的元素
  • peek():返回队列中的第一个元素
  • isempty():判断队列是否为空
  • size():返回队列的元素个数
  • print_queue():打印队列中的元素

代码实现

入队

enqueue(item:t){
        this.items.push(item);
    }

移除队首元素

//删除第一个元素并且返回被删除的元素
    dequeue(){
        return this.items.shift();
    }

返回队首元素

 //返回队列中的第一个元素
    peek(){
        return this.items[0];
    }

判断队列是否为空

//判断队列是否为空
    isempty(){
        return this.items.length ? false : true;
    }

获取队列的大小

	//返回队列大小
    size(){
        return this.items.length;
    }

打印队列中的元素

//打印队列中的元素
    print_queue(){
        for(let i =0;i<this.items.length;i++){
            console.log(this.items[i]);
        }
    }

代码测试

测试

测试结果如下:

在这里插入图片描述

完整代码

//用数组实现队列
class queue<t>{
    private items:t[]

    constructor(){
        this.items = [];
    }

    enqueue(item:t){
        this.items.push(item);
    }

    //删除第一个元素并且返回被删除的元素
    dequeue(){
        return this.items.shift();
    }

    //返回队列中的第一个元素
    peek(){
        return this.items[0];
    }

    //判断队列是否为空
    isempty(){
        return this.items.length ? false : true;
    }

    //返回队列大小
    size(){
        return this.items.length;
    }

    //打印队列中的元素
    print_queue(){
        for(let i =0;i<this.items.length;i++){
            console.log(this.items[i]);
        }
    }

}

let queue_example= new queue();

queue_example.enqueue(10)
queue_example.enqueue('熊大')
if(queue_example.isempty()){console.log('队列为空')}
else{console.log('队列非空')}
queue_example.print_queue();
console.log('队首元素是:'+queue_example.peek());
queue_example.dequeue()
console.log(queue_example.peek());

到此这篇关于typescript实现队列的示例代码的文章就介绍到这了,更多相关typescript 队列内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com