所谓队列就是排队的序列问题,有出有进,比如在银行排队办理业务,一般都是前一个办理完成后下一个自动进入队列
<script> /*
* 模拟队列
*/
var Qu ={};
//构造函数
Qu.Queue = function (len) {
this.capacity = len; //队列最大容量
this.list = new Array(); //队列数据
};
//入队
Qu.Queue.prototype.enqueue = function (data) {
if (data == null) return;
if(this.list.length>=this.capacity)
{
this.list.remove(0);
}
this.list.push(data);
};
//出队
Qu.Queue.prototype.dequeue = function () {
if (this.list == null) return;
this.list.remove(0);
};
//队列长度
Qu.Queue.prototype.size = function () {
if (this == null) return;
return this.list.length;
};
//队列是否空
Qu.Queue.prototype.isEmpty = function () {
if (this == null|this.list==null) return false;
return this.list.length>0;
};
//对象数组扩展remove
Array.prototype.remove = function(dx) {
if (isNaN(dx) || dx > this.length) {
return false;
}
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
调用例子:
//队列初始化
var queue = new Qu.Queue(10);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3); </script>
/*
* 模拟队列
*/
var Qu ={};
//构造函数
Qu.Queue = function (len) {
this.capacity = len; //队列最大容量
this.list = new Array(); //队列数据
};
//入队
Qu.Queue.prototype.enqueue = function (data) {
if (data == null) return;
if(this.list.length>=this.capacity)
{
this.list.remove(0);
}
this.list.push(data);
};
//出队
Qu.Queue.prototype.dequeue = function () {
if (this.list == null) return;
this.list.remove(0);
};
//队列长度
Qu.Queue.prototype.size = function () {
if (this == null) return;
return this.list.length;
};
//队列是否空
Qu.Queue.prototype.isEmpty = function () {
if (this == null|this.list==null) return false;
return this.list.length>0;
};
?
//对象数组扩展remove
Array.prototype.remove = function(dx) {
if (isNaN(dx) || dx > this.length) {
return false;
}
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i]
}
}
this.length -= 1
}
调用例子:
//队列初始化
var queue = new Qu.Queue(10);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
js队列的实现问题的更多相关文章
-
js 队列和事件循环
1.示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UT ...
-
简单的js队列
简单的js队列 /** * [Queue] * @param {[Int]} size [队列大小] */ function Queue(size) { var list = []; //向队列中添加 ...
-
js队列
用指针和数组模拟基本队列 http://blog.csdn.net/zhuwq585/article/details/53177192 js下的事件队列,或者异步队列 http://www.jb51. ...
-
js 队列
js 中的异步队列(micro & macro) js都是靠事件驱动的, js中的事件循环机制是什么呢? 只是简单写一下自己的理解, 所以不是很全面; js 程序执行有 主队列 以及 异步队列 ...
-
一个简单的js队列,逻辑很清晰
function Queue(type) { //type 是否是一个接着一个执行 function QueueConst() {} QueueConst.execute_ing=[], QueueC ...
-
写js写傻了,明天研究一下异步
在html某元素上绑定一个click事件,该事件是一个执行事件很长的函数,比如执行几十亿或几百亿次加法,那么在这个函数执行的过程中,其他元素绑定的事件,是如何触发的呢,异步触发还是同步,触发时是怎么执 ...
-
队列的实现 -- 数据结构与算法的javascript描述 第五章
队列也是列表的一种,有不同于列表的规则. 先进先出 入队方法 出队方法 可以找到队首 可以找到队尾 可以查看队列有多长 可以查看队列是否为空 这是一个基本的需求,围绕他来实现,当然我们可以自己扩展列表 ...
-
试着讲清楚:js代码运行机制
一. js运行机制 js执行引擎 经常看文章的说到js是带线程的,其实这个说法非常的模糊,准确的是js执行引擎是单线程的,js执行引擎就是js代码的执行器,有了这个概念就可以下来说说js是如何运行的了 ...
-
AJAX原理及XMLHttpRequest对象分析
今天的主题是前端都了解的AJAX,但其中都有哪些知识点,还需要深入分析. 首先揭示AJAX的字面意思,Asynchronous Javascript And XML,通俗点就是“异步Javascrip ...
随机推荐
-
boosting、adaboost
1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...
-
nodeschool.io 7
~~ HTTP CLIENT ~~ Write a program that performs an HTTP GET request to a URL provided toyou as the f ...
-
着色Test
1 2 3 4 5 6 7 8 9 10 def test: print "just a test" print "just a test" ...
-
DELL服务器安装Windows server 2003---解决找不到安装在计算机上的硬盘驱动器 安装无法
安装Windows server 2003系统,本以为改改BIOS配置“改为从光驱启动优先”很容易搞定的.没想到系统安装过程中碰到“找不到安装在计算机上的硬盘驱动器安装无法继续,要退出请按F3”问题, ...
-
ExecuteScalar
ExecuteScalar运行查询,并返回查询所返回的结果集中第一行的第一列或空引用(假设结果集为空).忽略其它列或行. 使用 ExecuteScalar 方法从数据库中检索单个值. 由于不用创建行集 ...
-
脚手架快速搭建springMVC框架项目
apid-framework脚手架快速搭建springMVC框架项目 rapid-framework介绍: 一个类似ruby on rails的java web快速开发脚手架,本着不重复发明轮 ...
-
Java图书管理系统(用Java常用集合实现)
图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭 ...
-
Win10和Ubuntu双系统搭建详
最近学习云计算时,需要搭建xen和Hadoop,虚拟机容易出很多问题所以搭建了双系统,也方便以后的学习. 下面是详细搭建过程: 准备材料: U盘(容量>8G,最好是3.0接口速度快).Ultra ...
-
nmap的使用
安装完nmap后,看网上都是直接cmd后nmap的方式来查看是否安装成功,但实际我总是不对,然后自己想着进入安装包执行命令,果然成功.
-
ThinkingInJava 学习 之 0000004 初始化与清理
1. 用构造器确保初始化. 不接受任何参数的构造器叫做默认构造器. Tree tree = new Tree(12); 如果Tree(int)时Tree类的唯一的构造器,那么编译器将不会允许你以其他任 ...