Typescript实现队列

队列的概念

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

队列的操作

  1. enqueue(element):向队列尾部添加一个新的项
  2. dequeue():移除队列的第一项,并且返回被移除的元素
  3. peek():返回队列中的第一个元素
  4. isEmpty():判断队列是否为空
  5. size():返回队列的元素个数
  6. 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());

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐