javascript中利用数组实现的循环队列代码_Javascript教程-查字典教程网
javascript中利用数组实现的循环队列代码
javascript中利用数组实现的循环队列代码
发布时间:2016-12-30 来源:查字典编辑
摘要://循环队列functionCircleQueue(size){this.initQueue(size);}CircleQueue.prot...

//循环队列

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教程学习
    编程开发子分类