队列的概念
- 队列是一个先进先出(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 队列内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论