队列

先进先出 前端删除,后端插入

队列的常见操作
enqueue(ele) : 向队列尾部添加一个或多个选项
dequeue():移除队列第一项,并返回被移除的元素
front():返回队列中第一个元素–最先被添加的,也是最被删除的。队列不做任何变动。
isEmpty():判断队列是否为空
size():返回队列包含元素的个数
toString():将队列中的内容转成字符串形式

队列的实现方式

  • 基于数组
  • 基于链表
//封装队列
function Queue(){
    this.items = [];
    Queue.prototype.enqueue = function(ele){
       this.items.push(ele);
    }
    Queue.prototype.dequeue = function(){
       this.items.shift();
    }
    Queue.prototype.front = function(){
        return this.items[0];
    }
    Queue.prototype.isEmpty = function(){
        return this.items.length == 0;
    } 
    Queue.prototype.size = function(){
        return this.items.length;
    }
    Queue.prototype.toString = function(){
      var resultString = '';
      for(var i = 0; i<this.items.length; i++){
           resultString += this.items[i] + '';
      }
       return resultString;
  } 
    
}

//使用队列
var queue = new Queue();
//击鼓传花
function passGane(nameList,num){
   var queue = new Queue;
   for(var i = 0; i< nameList.length; i++){
      queue.enqueue(nameList[i]);
   }
   while(queue.size()>1){
       for(var i = 0; i<num-1; i++){
           queue.enqueue(queue.enqueue);
       }
       queue.dequeue();
   }
   alert(queue.size());
   var endName = queue.front();
   alert("最终剩下的人是" + endName)
   return nameList.indexOf(endName);
}
在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值