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技术技巧大全(五)
Jan 22 Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
easyui Draggable组件实现拖动效果
Aug 19 Javascript
基于jquery实现瀑布流布局
Jun 28 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
webpack4 处理CSS的方法示例
Sep 03 Javascript
微信小程序动态添加view组件的实例代码
May 23 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防注
2007/01/15 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
Javascript 布尔型分析
2008/12/22 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
js实现星星打分效果
2020/07/05 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python深入学习之闭包
2014/08/31 Python
简述Python2与Python3的不同点
2018/01/21 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
医学院护理专业应届生求职信
2013/11/12 职场文书
乔迁宴答谢词
2014/01/21 职场文书
创先争优活动方案
2014/02/12 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
李开复演讲稿
2014/05/24 职场文书
小学语文业务学习材料
2014/06/02 职场文书
校园广播稿100字
2014/10/06 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB