JavaScript数据结构与算法(二) 队列的实现
TypeScript方式源码
 class Queue {
     items = [];
     public enqueue(element) {
         this.items.push(element);
     }
     public dequeue() {
         return this.items.shift();
     }
     public front() {
         return this.items[];
     }
     public isEmpty() {
         return this.items.length == ;
     }
     public clear() {
         this.items = [];
     }
     public size() {
         return this.items.length;
     }
     public print() {
         console.log(this.items.toString());
     }
 }
 // Queue类和Stack类非常类似。唯一区别是dequeue方法和front方法,由于先进先出和后进先出原则的不同所造成
 // 使用Queue类
 let queue = new Queue();
 console.log(queue.isEmpty());           // 输出true
 // 接下来,添加一些元素
 queue.enqueue('John');
 queue.enqueue('Jack');
 // 添加另一个元素
 queue.enqueue('Camila');
 // 再执行一些其他的命令
 queue.print();
 console.log(queue.size());              // => 3
 console.log(queue.isEmpty());           // => false
 queue.print();
 // 下图展示目前为止所有入列操作,以及队列当前的状态

 // 然后,出列两个元素(执行两次dequeue方法)。下图展示dequeue方法执行过程
 queue.dequeue();
 queue.dequeue();

JavaScript方式源码
 var Queue = (function () {
     function Queue() {
         this.items = [];
     }
     Queue.prototype.enqueue = function (element) {
         this.items.push(element);
     };
     Queue.prototype.dequeue = function () {
         return this.items.shift();
     };
     Queue.prototype.front = function () {
         return this.items[];
     };
     Queue.prototype.isEmpty = function () {
         return this.items.length == ;
     };
     Queue.prototype.clear = function () {
         this.items = [];
     };
     Queue.prototype.size = function () {
         return this.items.length;
     };
     Queue.prototype.print = function () {
         console.log(this.items.toString());
     };
     return Queue;
 }());
JavaScript数据结构与算法(二) 队列的实现的更多相关文章
- 学习JavaScript数据结构与算法 (二)
		学习JavaScript数据结构与算法 的笔记 包含第四章队列, 第五章链表 本人所有文章首发在博客园: http://www.cnblogs.com/zhangrunhao/ 04队列 实现基本队列 ... 
- JavaScript 数据结构与算法2(队列和双端队列)
		学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.队列和双端队列 队列和栈非常类似,但是使用了与 后 ... 
- Java数据结构和算法(二)--队列
		上一篇文章写了栈的相关知识,而本文会讲一下队列 队列是一种特殊的线性表,在尾部插入(入队Enqueue),从头部删除(出队Dequeue),和栈的特性相反,存取数据特点是:FIFO Java中queu ... 
- javascript 数据结构与算法---二叉数
		二叉树,首先了解一些关于二叉数的概念(来自百度百科) 1. 二叉树(Binary tree)是树形结构的一个重要类型 2. 定义: 二叉树(binary tree)是指树中节点的度不大于2的有序树,它 ... 
- javascript数据结构与算法---队列
		javascript数据结构与算法---队列 队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素.队列用于存储按顺序排列的数据,先进先出,这点和栈不一样(后入先出).在栈中,最后入栈的元素 ... 
- JavaScript数据结构与算法-队列练习
		队列的实现 // 队列类 function Deque () { this.dataStore = []; this.enqueueFront = enqueueFront; this.enqueue ... 
- 为什么我要放弃javaScript数据结构与算法(第四章)—— 队列
		有两种结构类似于数组,但在添加和删除元素时更加可控,它们就是栈和队列. 第四章 队列 队列数据结构 队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序 ... 
- 重读《学习JavaScript数据结构与算法-第三版》- 第5章 队列
		定场诗 马瘦毛长蹄子肥,儿子偷爹不算贼,瞎大爷娶个瞎大奶奶,老两口过了多半辈,谁也没看见谁! 前言 本章为重读<学习JavaScript数据结构与算法-第三版>的系列文章,主要讲述队列数据 ... 
- JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)
		前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ... 
随机推荐
- 2017年PHP程序员未来路在何方——韩天峰
			PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ... 
- NVisionXRFBXConverter(Beta版)实践课程
			一.前言 NVisionXR引擎使用的模型格式为.mesh(具体请看NVisionXR引擎基本介绍:http://www.arvrschool.com/read-7381 ),为了能够将常见的格式转换 ... 
- 【总结】关于YUV-RGB格式转换的一些个人理解
			这段时间一直在研究YUV的格式问题例如YUV422.YUV420,在网上搜索了很多这方面的资料,发现很多资料讲的东西是重复的,没有比较深入的讲解,所以看了之后印象不是很深,过了一段时间之后又对它们有了 ... 
- 20162328蔡文琛week07
			学号 2016-2017-2 <程序设计与数据结构>第X周学习总结 教材学习内容总结 多态引用在不同的时候可以指向不同类型的对象. 多态引用在运行时才将方法调用用于它的定义绑定在一起. 引 ... 
- python的测试
			测试 知识点 单元测试概念 使用 unittest 模块 测试用例的编写 异常测试 测试覆盖率概念 使用 coverage 模块 实验步骤 1. 应该测试什么? 如果可能的话,代码库中的所有代码都要测 ... 
- Flask 学习 十  博客文章
			提交和显示博客文章 app/models.py 文章模型 class Post(db.Model): __tablename__ = 'posts' id = db.Column(db.Integer ... 
- 03-移动端开发教程-CSS3新特性(下)
			1. CSS3动画 1.1 过渡的缺点 transition的优点在于简单易用,但是它有几个很大的局限. transition需要事件触发,所以没法在网页加载时自动发生. transition是一次性 ... 
- C语言Linix服务器网络爬虫项目(一)项目初衷和网络爬虫概述
			一.项目初衷和爬虫概述 1.项目初衷 本人的大学毕设就是linux上用c写的一个爬虫,现在我想把它完善起来,让他像一个企业级别的项目.为了重复发明轮子来学习轮子的原理,我们不使用第三方框架(这里是说的 ... 
- JaveScript内置对象(JS知识点归纳八)
			1)JS自身提供的方式 用于对数据进行简便的操作,根据方法可以操作的数据类型不同,形成了不同的对象--内置对象 2)数组  a)基本操作方法--对数组进行修改 从数组最后进行操作 1)数组.push ... 
- LeetCode & Q13-Roman to Integer-Easy
			Math String Description: Given a roman numeral, convert it to an integer. Input is guaranteed to be ... 
