美文网首页
队列的基础运用之击鼓传花

队列的基础运用之击鼓传花

作者: 海蒂Hedy | 来源:发表于2019-11-16 17:52 被阅读0次
//先进先出
        function Queue(){
            //属性
            this.item = []
            //方法
            //1.将元素加入队列出
            Queue.prototype.enqueue = function(element){
                this.item.push(element)
            }
            Queue.prototype.dequeue = function(){
                return this.item.shift()
            }
            //2.从队列中删除前端数据
            Queue.prototype.front = function(){
                return this.item[0]
            }
            //3.查看队列是否为空
            Queue.prototype.isEmpty = function(){
                return this.item.length == 0
            }
            //4.查看队列中元素的个数
            Queue.prototype.size = function(){
                return this.item.length
            }
            //5.toString
            Queue.prototype.toString = function(){
                var resultString = ''
                for(var i = 0;i<this.item.length;i++){
                    resultString += this.item[i]+''
                }
                return resultString
            }

        }
        // // //使用队列
        // var queue = new Queue()
        // //将元素加入队列中
        // queue.enqueue('a')
        // queue.enqueue('b')
        // queue.enqueue('c')
        // queue.enqueue('d')
        // queue.enqueue('e')
        // alert(queue)
        // queue.dequeue()
        // alert(queue)
        // queue.dequeue()
        // alert(queue)
        // //从队列中删除
        // // queue.dequeue('5')
        // //alert(queue)
        // alert(queue.front())
        // alert(queue.isEmpty())
        // alert(queue.size())

        //列子,击鼓传花
        function passGame(nameList,num){
            //1.创建一个队列结构
            var queue = new Queue();
            //2.将所有人一次加入队列中
            for(var i=0;i<nameList.length;i++){
                queue.enqueue(nameList[i])
            }
            //3.开始数数
            while(queue.size()>1){
                //不是num的时候加到队列末尾
                //是num将其从队列中删除
                for(var i = 0;i<num-1;i++){
                    queue.enqueue(queue.dequeue())
                }
                //num对应的人直接删除
                queue.dequeue()
            }
            //获取剩下的那些人
            alert(queue.size())
            var endName = queue.front()
            alert(endName)
            return nameList.indexOf(endName)
        }

        var names = ['lili','daming','lilei','xiaowang','xiaohong']
        alert(passGame(names,5))

相关文章

  • 队列的基础运用之击鼓传花

  • 队列-击鼓传花

    1-创建队列对象 2-击鼓传花函数 3-调用函数 4-结果

  • 学习js数据结构与算法2—队列

    队列遵循先进先出原则——如同排队 4.1 创建队列 4.2 优先队列 4.3 循环队列——击鼓传花

  • 第4章 队列

    Queue Queue2 使用Queue 优先队列 PriorityQueue2 击鼓传花

  • JS队列

    概念: 先进先出(FIFO)的数据接口 1. 代码实现队列Queue 2. 优先队列 3. 循环队列--击鼓传花 ...

  • JS实现循环队列 - 击鼓传花

      队列是遵循先进先出服务的一组有序的项,队列在尾部添加新元素,并从顶部移除元素,最新添加的元素必须排在队列的末尾...

  • 击鼓传花

    你的童年,是否有樱花 四人游戏 花在动 落日中传出细微的笑声 欢乐的时光中,反复长大 击鼓传花 夜色中 令人灼...

  • 击鼓传花

    上什么山 唱什么山歌 击鼓传花 击什么鼓 传什么花 当然击奋进之鼓 传美德之花 楼市有否真理 售楼小姐那句,今天买...

  • 击鼓传花

    在班上开展过很多游戏,让我最开心的是击鼓传花。 在一个秋高气爽的早上,班上正开展着有趣的游戏击鼓传...

  • 击鼓传花

    你喜欢游戏吗?我喜欢。那你喜欢什么游戏呢?我有多的游戏呢?比如:击鼓传花,丢手绢,五步猫,跳格子等等的游戏 ...

网友评论

      本文标题:队列的基础运用之击鼓传花

      本文链接:https://www.haomeiwen.com/subject/ugnyictx.html