[数据结构]Typescript实现队列

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());

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值