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 相关文章推荐
Javascript 获取字符串字节数的多种方法
Jun 02 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
Aug 16 Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
node thread.sleep实现示例
Jun 20 Javascript
JavaScript时间日期操作实例小结【5个示例】
Dec 22 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 Javascript
vue 中的 render 函数作用详解
Feb 28 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
原生JS实现多条件筛选
Aug 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
实用函数2
2007/11/08 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP错误机制知识汇总
2016/03/24 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
js闭包实现按秒计数
2015/04/23 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
协会周年庆活动方案
2014/08/26 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
预备党员转正材料
2014/12/19 职场文书
乐山大佛导游词
2015/02/02 职场文书
党小组推荐意见
2015/06/02 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android