javascript中利用数组实现的循环队列代码


Posted in Javascript onJanuary 24, 2010

//循环队列
function CircleQueue(size){
this.initQueue(size);
}
CircleQueue.prototype = {
//初始化队列
initQueue : function(size){
this.size = size;
this.list = new Array();
this.capacity = size + 1;
this.head = 0;
this.tail = 0;
},
//压入队列
enterQueue : function(ele){
if(typeof ele == "undefined" || ele == ""){
return;
}
var pos = (this.tail + 1) % this.capacity;
if(pos == this.head){//判断队列是否已满
return;
}else{
this.list[this.tail] = ele;
this.tail = pos;
}
},
//从队列中取出头部数据
delQueue : function(){
if(this.tail == this.head){ //判断队列是否为空
return;
}else{
var ele = this.list[this.head];
this.head = (this.head + 1) % this.capacity;
return ele;
}
},
//查询队列中是否存在此元素,存在返回下标,不存在返回-1
find : function(ele){
var pos = this.head;
while(pos != this.tail){
if(this.list[pos] == ele){
return pos;
}else{
pos = (pos + 1) % this.capacity;
}
}
return -1;
},
//返回队列中的元素个数
queueSize : function(){
return (this.tail - this.head + this.capacity) % this.capacity;
},
//清空队列
clearQueue : function(){
this.head = 0;
this.tail = 0;
},
//判断队列是否为空
isEmpty : function(){
if(this.head == this.tail){
return true;
}else{
return false;
}
}
}

Javascript 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
JavaScript.Encode手动解码技巧
Jul 14 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
Javascript实现的SHA-256加密算法完整实例
Feb 02 Javascript
详解如何在Angular中快速定位DOM元素
May 17 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
原生JS进行前后端同构
Apr 22 Javascript
js input输入百分号保存数据库失败的解决方法
May 26 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
Aug 28 Javascript
vue + axios get下载文件功能
Sep 25 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 #Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 #Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 #Javascript
setTimeout与setInterval在不同浏览器下的差异
Jan 24 #Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 #Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 #Javascript
优化javascript的执行速度
Jan 23 #Javascript
You might like
php xml文件操作代码(一)
2009/03/20 PHP
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
13个PHP函数超实用
2015/10/21 Javascript
JSON遍历方式实例总结
2015/12/07 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python标准异常和异常处理详解
2015/02/02 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
对Django url的几种使用方式详解
2019/08/06 Python
django列表筛选功能的实现代码
2020/03/27 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Python 创建TCP服务器的方法
2020/07/28 Python
详解pandas赋值失败问题解决
2020/11/29 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
世界最大的票务市场:viagogo
2017/02/16 全球购物
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
应届大学生简历中的自我评价
2014/01/15 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
法律顾问服务方案
2014/05/15 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
iPhone13再次曝光
2021/04/15 数码科技