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实现ping功能的方法
Mar 20 Javascript
javascript实现的多个层切换效果通用函数实例
Jul 06 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
AngularJS基础 ng-switch 指令简单示例
Aug 03 Javascript
bootstrap-table组合表头的实现方法
Sep 07 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 Javascript
JS简易计算器实例讲解
Jun 30 Javascript
使用PDF.js渲染canvas实现预览pdf的效果示例
Apr 17 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 面向对象的一个例子
2011/04/12 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
简单的js分页脚本
2009/05/21 Javascript
javascript 读取图片文件的大小
2009/06/25 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
window.onload使用指南
2015/09/13 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python实现AES加密解密
2019/03/28 Python
Apache部署Django项目图文详解
2019/07/30 Python
python获取整个网页源码的方法
2020/08/03 Python
Python gevent协程切换实现详解
2020/09/14 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
大三学习计划书范文
2014/05/02 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
员工工作心得体会
2019/05/07 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python