<script>
class Queue {
constructor(){
this.items = []
}
//入队
enqueue(item){
this.items.push(item)
}
// 出队
dequeue(){
if(this.isEmpty()) return null
return this.items.shift()
}
// 查看队首元素 不修改队列 (看一看)
front(){
if(this.isEmpty()) return null
return this.items[0]
}
// 是否为空
isEmpty(){
return this.items.length === 0
}
// 查看队列长度
size(){
return this.items.length
}
}
function game(list, num){
let queue = new Queue()
for(let i = 0; i<list.length; i++) {
queue.enqueue(list[i])
}
while(queue.size()>1){
for(let i = 1; i<num; i++){
queue.enqueue(queue.dequeue())
}
queue.dequeue()
}
return queue.front()
}
console.log(game(['a','b','c'], 2))
</script>
例子:给出数组list:【‘a’,'b','c'】和指定数字num:2 ,list中元素按照123的顺序排列,遇到为2的
序列号出队,剩下的继续从1开始入队,即
a - 1
b - 2 (出队)
继续 c - 1
a - 2 (出队)
最后只剩c