js之队列01

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>队列</title>

    <script type="text/javascript">

     //开始准备实现队列
     function Queue() {

        this.dataStore = [];
        this.enqueue = enqueue;
        this.dequeue = dequeue;
        this.front = front;
        this.back = back;
        this.toString = toString;
        this.empty = empty;
     }

     //入队
     function enqueue(element) {
        this.dataStore.push(element);
     }
     //出队
     function dequeue() {
        return this.dataStore.shift();
     }

     //读取队首
     function front() {
        return this.dataStore[0];
     }

     //读取队尾
     function back() {
        return this.dataStore[this.dataStore.length-1];
     }

     //显示队列中所有元素
     function toString() {
        var retStr = "";

        for(var i = 0; i < this.dataStore.length; ++i) {
            retStr += this.dataStore[i] + "\n";
        }

        return retStr;
     }

     //队列是否为空
     function empty() {
        if(dataStore.length == 0){
            return true;
        }
        else {
            return false;
        }
     }

     //测试

     //构造对象
     var q = new Queue();

     //入队
     q.enqueue("A");
     q.enqueue("B");
     q.enqueue("C");
     q.enqueue("D");

     //打列元素
     console.log(q.toString());

     //队首
     console.log("Front of queue: " + q.front());

     //道尾
     console.log("Back of queue: " + q.back());

     //出队
     q.dequeue();

      //队首
     console.log("Front of queue: " + q.front());

     //道尾
     console.log("Back of queue: " + q.back());

      //打列元素
     console.log(q.toString());

    </script>

</head>
<body>

</body>
</html>

//效果
时间: 2025-01-07 01:43:21

js之队列01的相关文章

封装常用的js(Base.js)——【01】理解库,获取节点,连缀,

封装常用的js(Base.js)——[01]理解库,获取节点,连缀,  youjobit07 2014-10-10 15:32:59 前言:       现如今有太多优秀的开源javascript库,比如jQuery,Prototype,Dojo等等,这些javascript库已经把最常用的代码进行了有效的封装,以便我们开发,从而提高效率.现在我这里探讨的是自己创建一个javascript库,自己创建的肯定没有那些开源javascript库功能强大,目的主要是为了提升自己的原生javascrip

vue.js精讲01

笔记及源码地址 : https://github.com/wll8/vue_note 01 2017-09-13 view一个 mvvm框架(库),和 ag 类似.比较小巧,容易上手. mvc: mvp mvvm mvx(mv*) vue 和 ag 的区别. 不用纠结什么好,项目适合什么就用什么. vue 简单 中文文档 指令: v-xxx 例子: html + json + vue实例 维护: 个人 适合: 移动 ag 上手难 英文文档 指令: ng-xxx 例子: 把所有属性和方法挂到 $s

js实现队列的操作以及对队列中数字的冒泡排序的可视化

一.理论基础 (1)封装一个对队列操作的构造函数,可以进行进队列,出队列,获得队列长度,返回该队列的数组形式. (2)使用正则表达式对input框中的输入字符进行验证,并获得有效的值 (3)使用setInterval()定时器实现可视化的冒泡排序过程,(因为js中没有sleep()函数),使用两个嵌套if语句控制排序过程,外部if语句表示执行次数,内部if语句进行相邻两个数的比较,每两个相邻数字,通过比较,交换完之后,绘制一次图形,j++,然后通过定时器继续执行函数,当一次的相邻数字比较完之后,

JS实现购物车01

需求 使用JS实现购物车功能01 具体代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>购物车01</title> <style type="text/css"> .num{ width:20px; } </style> </head> <

玩一下Nodo.js系列 (01):Hello World的WEB程序

声明:本文为原创文章,如需转载,请注明来源并保留原文链接Allong,谢谢! "滚滚长江东逝水,浪花淘尽英雄.是非成败转头空." - <临江仙·杨慎·明> 很熟悉的旋律,鸡汤了一下:高考是一个起点,学得好的找到好学校,号称学霸:工作又是一个分水岭,认真做事,勤奋好学,晋身大神.不要太在意过去你得到什么,盯着未来你想要什么? A-one:创建Node环境 windows(X64) 下载安装包,傻瓜式安装,自带npm包管理器(node pakeage manager)带你装逼带

面向于初学者的Node.js学习笔记 01 搭建静态服务器

希望这篇文章能解决你这样一个问题:“我现在已经了解了一些Node.Js基本概念了,怎么搭一台静态服务器呢?” 请参考一下博主的前两篇文章: 完全面向于初学者的Node.js指南 Node.Js的Module System 以及一些常用 Module 本文实现的效果(样式就没做了,大家将就下): 列出的代码均测试可用,大家放心. What is static server? 静态服务器,有了它呢,就可以让外部访问到咱们的静态网页.在功能上:它可以给用户发送文件(如:HTML, CSS, Js等).

vue.js初级教程--01.简介

Vue特点 渐进式框架 采用自底向上增量开发的设计 核心库只关注视图层 轻量级 22kb min+gzip 高性能 渲染性能:支持条件.循环.服务端渲染方式 更新性能:数据驱动.响应式 特性 数据驱动,支持双向数据绑定,异步批量DOM更新 组件化,支持组件独立.组件复用以及异步加载 模块化,模板.数据.外数据.方法.生命周期函数.样式 指令,支持内置指令和自定义指令 虚拟DOM 为什么需要虚拟DOM DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的.如

【d3.js实践教程01】d3基本操作

学习d3.js(以下都简称d3)也有一段时间了,运行d3做了几个项目.我发现中文的d3教程很少,国外资料多但要求有一定的英文阅读能力(推荐网址:http://bl.ocks.org/mbostock),于是就萌发了写一个d3实际运用系列文章的想法,现在开始付之行动.在系列中,我会用d3+html5 canvas实现一些实际效果(如统计结果展示,地图数据展示等),希望可以跟大家共同学习交流. 代码我公布在git.cschina.com上,大家可以clone到本地运行,地址是:http://git.

js模拟队列----小优先队列

队列:先进先出,后进后出 var Queue = (function(){ var item = new WeakMap(); class Queue{ constructor(){ item.set(this,[]); } enqueue(ele,priority){ var ls = item.get(this); var obj = { ele:ele, pro:priority }; var add = false; for(var i = 0; i < ls.length; i++ )