数据结构_击鼓传花

复制代码
 //队列,先进先出

  class Queue {
    constructor () {
      this.items = []
    }
    //入队
    enQueue (elem) {
      return this.items.push(elem)
    }
    //出队
    deQueue () {
      return this.items.shift()
    }
    //查看队首元素
    front () {
      return this.items[0]
    }
    //是否为空
    isEmpty () {
      return this.items.length <= 0
    }
    //清空队列
    clear () {
      this.items = []
      return true
    }
    //队列长度
    size () {
      return this.items.length
    }
  }

  //击鼓传花
  
  function jigu (personNum, num) {
    let queue = new Queue()
    let index = 1
    for (var i = 0; i < personNum; i++) {
      queue.enQueue(i+1)
    }
    while (queue.size() > 1) {
      if (index >= num) {
        index = 1
        queue.deQueue()
      }
      queue.enQueue(queue.deQueue())      
      index++
    }
    return queue.items
  }

var number = jigu(13, 5)
console.log(number)
复制代码

 

posted @   前端之旅  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示