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
Aug 13 Javascript
javascript和jquery修改a标签的href属性
Dec 16 Javascript
关于javascript中dataset的问题小结
Nov 16 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
jQuery简单实现title提示效果示例
Aug 01 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
Aug 08 jQuery
JS实现简易留言板增删功能
Feb 08 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
公众号SVG动画交互实战代码
May 31 Javascript
JS绘图Flot应用图形绘制异常解决方案
Oct 16 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速度全攻略
2006/10/09 PHP
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
解析PHP提交后跳转
2013/06/23 PHP
Yii核心验证器api详解
2016/11/23 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
python简单程序读取串口信息的方法
2015/03/13 Python
详解python数据结构和算法
2019/04/18 Python
Python自动抢红包教程详解
2019/06/11 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
Python 文件数据读写的具体实现
2020/01/24 Python
如何基于线程池提升request模块效率
2020/04/18 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
外语学院毕业生的自我鉴定
2013/11/28 职场文书
毕业设计计划书
2014/01/09 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
单位介绍信格式范文
2015/05/04 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
Java界面编程实现界面跳转
2022/06/16 Java/Android