数据结构_击鼓传花

 //队列,先进先出

  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)

 

你可能感兴趣的:(数据结构_击鼓传花)