数据结构--队列--js击鼓传花算法实现

本文介绍了如何利用JavaScript中的队列数据结构来模拟击鼓传花游戏。首先,阐述了击鼓传花的规则,接着详细讲解了队列的基本概念,包括其先进先出的特点以及常用操作如入队、出队等。然后,通过具体的代码实现,展示了如何运用队列来确定游戏结束时获胜者的原始位置。
摘要由CSDN通过智能技术生成

击鼓传花游戏

原游戏规则:

班级中玩一个游戏,所有学生围成一圈,从某位同学手里开始向旁边的同学传一束花。
这个时候某个人(比如班长),在击鼓,鼓声停下的一刻,花落在谁手里,谁就出来表演节目

一般在编程中就会把游戏规则修改一点

修改后的游戏规则:

几个朋友一起玩一个游戏,围成一圈,开始数数,数到某个数字的人自动淘汰。 最后剩下的这个人会获得胜利,请问最后剩下的是原来在哪一个位置上的人?

要想用JavaScript实现这个游戏,可以使用队列的知识

队列:一种受限的线性表,先进先出。它只允许在表的前端(front)进行删除操作,表的后端(rear)进行插入操作

定义队列的方法:
  • enqueue() 入队
  • dequeue() 出队
  • front() 查看队头元素
  • size()查看队列个数
  • isEmpty()查看队列是否为空
  • toString() 返回队列中所有的元素

队列的实现

//封装队列类
         function Queue(){
   
            //属性
            this.items = []

            //方法

            //将元素加入到队列中
            Queue.prototype.enqueue = function(element){
   
                this.items.push(element)
            }
            //从队列中删除前端元素
            Queue.prototype.de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值