JS-擊鼓傳花(對(duì)列)

在封裝了對(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é)果:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容