JS数据结构之队列(Queue)

时间:2025-04-07 10:08:18
function passGame(nameList, number) { const queue = new Queue(); // 先组成一个队列 for (let name of nameList) { queue.enqueue(name); } console.log("原始数组:", queue.items); //['lily'] // 开始数数 while (queue.size() > 1) { // 不是 number 时,重新加入到队尾 // 是 number 时,将其删除 for (let i = 0; i < number - 1; i++) { // 即把队头删除的元素,重新加入到队尾中 queue.enqueue(queue.dequeue()); console.log("非number加入队尾", queue.items); } queue.dequeue() console.log(`删除${number}后`, queue.items); } console.log("最终数组:", queue.items); //['lily'] // 获取最后剩下的那个人 const endName = queue.front(); return nameList.indexOf(endName); } // passGame() 测试 const names = ['lily', 'lucy', 'tom', 'tony', 'jack']; const targetIndex = passGame(names, 4); console.log('击鼓传花最终赢家是:', names[targetIndex]); //lily