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 相关文章推荐
windows8.1+iis8.5下安装node.js开发环境
Dec 12 Javascript
JavaScript动态修改背景颜色的方法
Apr 16 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
Aug 17 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
详解js的六大数据类型
Dec 27 Javascript
Node.js开发第三方微信公众平台
Jun 05 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
如何抽象一个Vue公共组件
Oct 17 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
Apr 14 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
Vue指令实现OutClick的示例
Nov 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
学习使用curl采集curl使用方法
2012/01/11 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
python搭建微信公众平台
2016/02/09 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
浅析Python的命名空间与作用域
2020/11/25 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
52条SQL语句教你性能优化
2021/05/25 MySQL
python编程实现清理微信重复缓存文件
2021/11/01 Python