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 相关文章推荐
jquery获取iframe中的dom对象(两种方法)
Jul 02 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
js canvas实现擦除动画
Jul 16 Javascript
js两种拼接字符串的简单方法(必看)
Sep 02 Javascript
vue-cli3全面配置详解
Nov 14 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
mock.js模拟前后台交互
Jul 25 Javascript
基于JS实现简单滑块拼图游戏
Oct 12 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 10 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
Syphon 秘笈
2021/03/03 冲泡冲煮
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
vue实现页面加载动画效果
2017/09/19 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
Python使用线程来接收串口数据的示例
2019/07/02 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
商场促销活动方案
2014/02/08 职场文书
条幅标语大全
2014/06/20 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
用python实现监控视频人数统计
2021/05/21 Python
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python