91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js循環隊列怎么用

發布時間:2021-09-07 10:54:13 來源:億速云 閱讀:92 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“js循環隊列怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“js循環隊列怎么用”這篇文章吧。

1、可以使用循環隊列來模擬擊鼓傳花的游戲(約瑟夫環問題)。

2、一群孩子圍成一圈,每次傳遞n個數,停下來時手里拿花的孩子被淘汰,直到隊伍中只剩下一個孩子,即勝利者。

循環隊列,每次循環的時候(從隊列頭部)彈出一個孩子,再把這個孩子加入到隊列的尾部,循環 n 次,循環停止時彈出隊列頭部的孩子(被淘汰),直到隊列中只剩下一個孩子。

實例

function Queue() {
  //初始化隊列(使用數組實現)
  var items = [];
  //入隊
  this.enqueue = function (ele) {
    items.push(ele);
  };
 
  //出隊
  this.dequeue = function () {
    return items.shift();
  };
  //返回首元素
  this.front = function () {
    return items[0];
  };
  //隊列是否為空
  this.isEmpty = function () {
    return items.length == 0;
  };
  //清空隊列
  this.clear = function () {
   items = [];
  };
  //返回隊列長度
  this.size = function () {
    return items.length;
  };
  //查看列隊
  this.show = function () {
    return items;
  };
}
/**
 *
* @param {名單} names
 * @param {指定傳遞次數} num
 */
function onlyOne(names, num) {
  var queue = new Queue();
  //所有名單入隊
  names.forEach((name) => {
    queue.enqueue(name);
  });
  //淘汰的人名
  var loser = "";
  //只要還有一個以上的人在,就一直持續
  while (queue.size() > 1) {
    for (let i = 0; i < num; i++) {
     //把每次出隊的人,再次入隊 ,這樣一共循環了num 次(擊鼓傳花一共傳了num次)
      queue.enqueue(queue.dequeue());
    }
    //到這就次數就用完了,下一個就要出隊了
    loser = queue.dequeue();
    console.log(loser + "被淘汰了");
  }
  //到這就剩下一個人了
  return queue.dequeue();
}
var names = ["文科", "張凡", "覃軍", "邱秋", "黃景"];
var winner = onlyOne(names, 99);
console.log("金馬獎影帝最終獲得者是:" + winner);

以上是“js循環隊列怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蓬安县| 岳普湖县| 德令哈市| 信阳市| 富顺县| 永德县| 临沧市| 鄂伦春自治旗| 静海县| 武隆县| 奉贤区| 福泉市| 潜山县| 江油市| 固安县| 云浮市| 江达县| 日喀则市| 深州市| 芜湖市| 英德市| 延川县| 满城县| 博客| 西和县| 沙雅县| 皋兰县| 巴中市| 宁乡县| 缙云县| 保定市| 平利县| 兴和县| 高台县| 江山市| 洛南县| 肃宁县| 神农架林区| 红桥区| 梁山县| 社会|