JavaScript 击鼓传花的游戏 使用数据结构---队列来实现击鼓传花

击鼓传花游戏

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

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

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

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


队列的定义

队列(Queue)是只允许在一端进行插入操作,而另一端进行删除操作的线性表
队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一段称为队尾,允许删除的一端称为队头。
假设队列是 q=(a1,a2,a3....,an) ,那么 a1 就是队头元素,而 an 就是队尾元素。这样我们删除时,总是从 a1 开始;而插入时,在最后。
这也符合我们通常在生活中高的习惯,排在第一个的优先处理,最后来的当然在队伍的最后了。
队列示例图
上图战士了队列的两个操作,入队和出队。除此之外我们还需要别的数据,比如队列里是否有元素,队列的长度等等

定义队列的方法:

  • enqueue() 入队
  • dequeue() 出队
  • front() 查看队头元素
  • toString() 返回队列中所有的元素
  • length() 返回队列的长度

队列的实现

function Queue() {
   
				
	this.items = []

	// 将元素加入到队列中
	Queue.prototype.enqueue = function(element) {
   
		this.items.push(element)
	}

	// 从队列中删除最前端的元素
	Queue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值