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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
extjs 为某个事件设置拦截器
Jan 15 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
Apr 01 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
Apr 24 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
Apr 28 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
JS中min函数实例讲解
Feb 18 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
在小程序中推送模板消息的实现方法
Jul 22 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 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
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
2019/04/24 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python实现代码行数统计示例分享
2014/02/10 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
Python os模块常用方法和属性总结
2020/02/20 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
18岁生日感言
2014/01/12 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
理财投资建议书
2014/03/12 职场文书
小学开学典礼主持词
2014/03/19 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
买卖车协议书
2014/04/21 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python