我是靠谱客的博主 火星上果汁,这篇文章主要介绍javascript 基于数组方式实现队列及一系列队列的相关操作,现在分享给大家,希望可以做个参考。

javascript 基于数组方式实现队列及一系列队列的相关操作

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//封装队列类 队列的特点 从后端插入元素 从前端删除(取)元素 function Queue() { this.items = [] //将元素加入到队列中 Queue.prototype.enQueue = function (element) { this.items.push(element) } //前端删除队列元素 Queue.prototype.delQueue = function () { return this.items.shift() } //查看前端的元素 Queue.prototype.front = function () { return this.items[0] } //查看队列是否为空 Queue.prototype.isEmpty = function () { return this.items.length === 0 } //查看队列中元素的个数 Queue.prototype.size = function () { return this.items.length } //将队列中的元素转化为字符串 Queue.prototype.toString = function () { let resultString = '' for (let i = 0 ; i < this.items.length; i++) { resultString += this.items[i] + ' ' } return resultString } }

检验创建的队列是否有误

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const queue = new Queue() queue.enQueue('ssss') queue.enQueue('few') queue.enQueue('dfa') queue.enQueue('455') console.log(queue.delQueue()); console.log(queue.toString()) console.log(queue.front()) console.log(queue.isEmpty()) console.log(queue.size())

结果

复制代码
1
2
3
4
5
6
ssss few dfa 455 few false 3

利用上面创建好的队列解决击鼓传花的游戏
规则如下:将参加玩游戏的人围成一个圈,从1开始数数,数到某一个规定的数字就淘汰,下一个人继续从1开始数,最后剩下的人会获得胜利,问这个人是谁?

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//利用封装好的队列解决击鼓传花的游戏 function passGame(namesList,passNumber) { const queue = new Queue() for (let i = 0; i < namesList.length; i++) { queue.enQueue(namesList[i]) //将玩游戏的人依次加入到队列中 } while(queue.size() > 1) { //当队列中仅剩一人时停止游戏 for (let i = 1; i < passNumber; i++) { queue.enQueue(queue.delQueue()) //将未喊道淘汰数字的人 依次从队列删除 并加入到队列的末尾 } queue.delQueue() //将喊道淘汰数字的人剔除队列 } let winner = queue.front() return winner } let names = ['a','b','c','d','e','f'] console.log(passGame(names, 5));

结果

复制代码
1
2
a

最后

以上就是火星上果汁最近收集整理的关于javascript 基于数组方式实现队列及一系列队列的相关操作的全部内容,更多相关javascript内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部