在封裝了對(duì)列的簡單操作后,我們?cè)诖嘶A(chǔ)上進(jìn)行簡單應(yīng)用

代碼實(shí)現(xiàn)
// 擊鼓傳花案例
? ? function passGame(nameList,num){
//1.創(chuàng)建一個(gè)隊(duì)列
? ? ? ? let queue=new Queue()
// 2.將所有人一次加入到隊(duì)列中
? ? ? ? for (let i=0;i
queue.enqueue(nameList[i])
}
//? ? ? ? 3.開始數(shù)我們的數(shù)字,
//? ? ? ? 不是我們的num,將其放置在我們隊(duì)列的末尾
//? ? ? ? 是num這個(gè)數(shù)字的時(shí)候,將其從隊(duì)列中刪除掉!
//? ? ? ? 下面的是將num數(shù)字之前的數(shù)字重新放置在末尾!
? ? ? ? while(queue.size()>1){
for (let i=0;i
queue.enqueue(queue.dequeue())
}
//對(duì)應(yīng)是num數(shù)字的人將其刪除淘汰掉!
? ? ? ? ? ? queue.dequeue()
}
//? ? ? ? 4.獲取剩下的那個(gè)人
? ? ? ? alert(queue.size())
let endName=queue.front()
alert('最終剩下的人:'+endName)
//查看最后的剩下的人在原來數(shù)組中的下標(biāo)值
? ? ? ? return nameList.indexOf(endName)
}
//測(cè)試
? names=['lili','LuCy','Tom','lilei','why']
alert(passGame(names,3))
測(cè)試結(jié)果:


