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 相关文章推荐
jquery 页面全选框实践代码
Apr 02 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
javascript控制在光标位置插入文字适合表情的插入
Jun 09 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
Bootstrap table分页问题汇总
May 30 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php 模拟get_headers函数的代码示例
2013/04/27 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
python解析中国天气网的天气数据
2014/03/21 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
python基础教程项目二之画幅好画
2018/04/02 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
基于Python绘制个人足迹地图
2020/06/01 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
中专生的个人自我评价
2013/12/11 职场文书
安全生产先进个人材料
2014/02/06 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
拾金不昧感谢信
2015/01/21 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
Java基础之线程锁相关知识总结
2021/06/30 Java/Android