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 相关文章推荐
popdiv
Jul 14 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
将查询条件的input、select清空
Jan 14 Javascript
javascript中的undefined和not defined区别示例介绍
Feb 26 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
如何动态加载外部Javascript文件
Dec 02 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
angular内置provider之$compileProvider详解
Sep 27 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
vue 开发企业微信整合案例分析
Dec 02 Javascript
node.js使用stream模块实现自定义流示例
Feb 13 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 URL路由类实例
2013/11/12 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
安装dbus-python的简要教程
2015/05/05 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python中logging包的使用总结
2018/02/28 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
文秘专业自荐信
2013/10/14 职场文书
出纳岗位职责
2013/11/09 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
高中毕业自我评价
2014/02/08 职场文书
部队万能检讨书
2014/02/20 职场文书
大学新生军训感言
2014/02/25 职场文书
财务管理专业求职信
2014/06/11 职场文书
2014年财务部工作总结
2014/11/11 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle