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 相关文章推荐
js 无提示关闭浏览器页面的代码
Mar 09 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
BootStrap中的Fontawesome 图标
May 25 Javascript
JS查找数组中重复元素的方法详解
Jun 14 Javascript
详解vue使用$http服务端收不到参数
Apr 19 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 echo 输出字符串函数详解
2010/05/13 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
pygame实现飞机大战
2020/03/11 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
如何在python中判断变量的类型
2020/07/29 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
python如何运行js语句
2020/09/09 Python
python Zmail模块简介与使用示例
2020/12/19 Python
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
员工安全责任书范本
2014/07/24 职场文书
励志演讲稿200字
2014/08/21 职场文书
党课主持词大全
2015/06/30 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers