js队列的实现问题
所谓队列就是排队的序列问题,有出有进,比如在银行排队办理业务,一般都是前一个办理完成后下一个自动进入队列
<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 ...
 
随机推荐
- 通过jaxws-ri创建webservice服务端和客户端
			
1. 获得开发包 当然是到 SUN 的开发网站下载 JAX-WS RI,或者下载我的网盘备份 ,下载下来的只是一个jar包,参考官网上的方法在命令行调用:java -jar JAXWS2.1.2-20 ...
 - json(JavaScript Object Natation)学习
			
Json必需的包: commons-httpclient-3.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar json-lib-2.2.3-j ...
 - 解决itextpdf行高问题
			
解法:PdfPCell.setFixedHeight(value);
 - 关于DES加密中的 DESede/CBC/PKCS5Padding
			
今天看到一段3DES加密算法的代码,用的参数是DESede/CBC/PKCS5Padding,感觉比较陌生,于是学习了一下. 遇到的java代码如下: Cipher cipher=Cipher.get ...
 - spring mysql多数据源配置
			
spring mysql多数据源配置 @Configuration public class QuartzConfig { @Autowired private AutowireJobFactory ...
 - raise语句
			
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python学习手册 868 #raise语句 res=[IndexError,TypeError] #ra ...
 - opencv-3.0.0-beta和opencv2版本号的差别
			
我的机器:64位系统 第一步: opencv官网下载opencv3.0.0-beta版本号.解压到自己的目录,我的目录是E:\,解压后在E盘出现名为opencv的目录.该目录下有两个子目录 第二步:配 ...
 - zabbix监控redis连接情况
			
配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加 Include=/etc/zabbix/zabbix_agentd.d/ 添加脚本对red ...
 - Mac新建文件夹、txt文件、其他格式文件
			
Mac新建txt,正好有人问我,我就把我自己的方法记录一下: 先cd到你指定的文件路径下: 新建文件夹: mkdir test 新建txt touch test.txt 新建无后缀格式文件 touch ...
 - VI打开和编辑多个文件的命令
			
http://www.05112.org/school/xtrm/linux/2013/0625/4280.htmlVI打开和编辑多个文件的命令 可分两种情况: 1.在同一窗口中打开多个文件: v ...