<!DOCTYPE html>标签:24,function,prototype,items,queue,Queue,传花,var,数据结构 From: https://blog.51cto.com/u_15460007/6050073
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>击鼓传花</title>
</head>
<body>
<script>
function Queue() {
this.items = [];
Queue.prototype.enqueue = function (element) {
this.items.push(element);
};
Queue.prototype.dequeue = function () {
return this.items.shift();
};
Queue.prototype.front = function () {
return this.items[0];
};
Queue.prototype.isEmpty = function () {
return this.items.length == 0;
};
Queue.prototype.size = function () {
return this.items.length;
};
Queue.prototype.toString = function () {
var resultString = "";
for (var i = 0; i < this.items.length; i++) {
resultString += this.items[i] + "";
}
return resultString;
};
}
function naseGame(nameList, num) {
var Queue = new Queue();
//所有人放到队列中
for (var i = 0; i < nameList.length; i++) {
queue.enqueue(nameList[i]);
}
while (queue.size() > 1) {
//重新加入到队列的末尾
for (var i = 0; i < num - 1; i++) {
queue.enqueue(queue.dequeue());
}
//对应这个人 直接动队列中删除
queue.dequeue();
}
//获取到剩余的最后一个人
var endName=queue.front()
console.log(endName)
}
</script>
</body>
</html>