使用javaScript的循环队列实现击鼓传花。

这个击鼓传花基于普通的队列级基础上变为循环队列,没有使用双端队列,普通的队列可以见我之前发布的文章。击鼓传花代码如下:

function hotPotato(elementsList,num){
  const queue = new Queue();//这个队列类,可以参考https://www.cnblogs.com/MySweetheart/p/13211539.html
  const elimitatedList = [];
  for(let i = 0; i < elementsList.length;i++){
      queue.enqueue(elementsList[i]);
  }
  while(queue.size()>1){
      for(let i = 0; i < num; i++){
          queue.enqueue(queue.dequeue());
      }
      elimitatedList.push(queue.dequeue());
  }
  return {
      eliminated:elimitatedList,
      winner:queue.dequeue()
  }
}

结果

posted @ 2020-06-30 08:57  放学别跑啊  阅读(294)  评论(0编辑  收藏  举报