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 相关文章推荐
理解JSON:3分钟课程
Oct 28 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
node.js中的path.sep方法使用说明
Dec 08 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
jQuery中:last-child选择器用法实例
Dec 31 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
Feb 25 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 Javascript
去除html代码里面的script正则方法
May 19 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 Javascript
使用vue制作滑动标签
Sep 21 Javascript
Vue如何实现组件间通信
May 15 Vue.js
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
长波有什么东西
2021/03/01 无线电
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
图书管理程序(一)
2006/10/09 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
前端路由&webpack基础配置详解
2019/06/10 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
解析Python中while true的使用
2015/10/13 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python 类之间的参数传递方式
2019/12/20 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
房地产开发计划书
2014/01/10 职场文书
高中数学教学反思
2014/01/30 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
清扬洗发水广告词
2014/03/14 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
美国留学经济担保书
2014/05/20 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL