js队列的封装,约瑟夫环游戏


js队列的封装,约瑟夫环游戏

class Queue {
           constructor() {
               this.items = []
           }
           //入列
           enqueue(data) {
               this.items.push(data)
           }
           //出列
           dequeue() {
               return this.items.shift()
           }
           front() {
               return this.items[0]
           }
           isEmpty() {
               return this.items.length === 0
           }
           size() {
               return this.items.length
           }
           clear() {
               this.items = []
           }
           toString() {
               return this.items.join()
           }
       }
       function game(list, num) {
           let queue = new Queue()
           for (let i = 0; i < list.length; i++) {
               queue.enqueue(list[i])
           }
           while (queue.size() > 1) {
               for (let i = 0; i < num; i++) {
                   queue.enqueue(queue.dequeue())
               }
               console.log(queue.dequeue(), "out!");
           }
           return queue.dequeue()
       }

文章作者: TOBY
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 TOBY !
评论
  目录