1-創(chuàng)建隊列對象
function Queue() {
var items = [];
//屬性和方法
this.enqueue = function (element) {//隊尾添加元素
items.push(element);
}
this.dequeue = function () {//刪除第一個元素
return items.shift();
}
this.front = function () {//返回第一個元素
return items[0];
}
this.isEmpty = function () {//判斷為空不
return items.length == 0;
}
this.size = function () {//隊列長度
return items.length;
}
this.print = function () {//打印隊列
console.log(items.toString());
}
}
2-擊鼓傳花函數(shù)
function hotPotato(nameList, num){//num就是傳花幾次
var queue = new Queue();
for(var i = 0; i<nameList.length; i++){
queue.enqueue(nameList[i]);//名字全部加入隊列
}
var eleminated = '';
while(queue.size() > 1){
for(var i =0; i<num; i++){
queue.enqueue(queue.dequeue());//隊列開始移除一項尔许,再加入至隊尾
}
eleminated = queue.dequeue();//循環(huán)次數(shù)num結(jié)束慕爬,拿著花的淘汰,
//即隊列第一個人兵琳,所以用dequeue()
console.log(eleminated+"被移除");
}
return queue.dequeue();//剩下的就是勝者勃蜘,其實就一個人硕噩。
}
3-調(diào)用函數(shù)
var names = ['John', 'Jack', 'Camila', 'Ingrid', 'Carl'];
var winner = hotPotato(names, 7);
console.log("勝利者: " + winner);
4-結(jié)果
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者