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 29 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
D3.js实现柱状图的方法详解
Sep 21 Javascript
学习Node.js模块机制
Oct 17 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 Javascript
从零学习node.js之利用express搭建简易论坛(七)
Feb 25 Javascript
JS+HTML5 FileReader对象用法示例
Apr 07 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
javascript 数组操作详解
2015/01/29 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python简单生成8位随机密码的方法
2017/05/24 Python
Python单例模式的两种实现方法
2017/08/14 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
python之super的使用小结
2018/08/13 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
linux系统都有哪些运行级别
2016/03/26 面试题
如何写好升职自荐信
2014/01/06 职场文书
2014政务公开实施方案
2014/02/19 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
放飞理想主题班会
2015/08/14 职场文书
新学期开学寄语2016
2015/12/04 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
详解MySQL的半同步
2021/04/22 MySQL
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
Nginx HTTP跳转至HTTPS
2022/05/15 Servers