JavaScript数据结构之优先队列与循环队列怎么实现
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"JavaScript数据结构之优先队列与循环队列怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript数据结构
千家信息网最后更新 2025年12月02日JavaScript数据结构之优先队列与循环队列怎么实现
这篇文章主要讲解了"JavaScript数据结构之优先队列与循环队列怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JavaScript数据结构之优先队列与循环队列怎么实现"吧!
优先队列
实现一个优先队列:设置优先级,然后在正确的位置添加元素。
我们这里实现的是最小优先队列,优先级的值小(优先级高)的元素被放置在队列前面。
//创建一个类来表示优先队列function Priorityqueue(){ var items=[];//保存队列里的元素 function QueueEle(e,p){//元素节点,有两个属性 this.element=e;//值 this.priority=p;//优先级 } this.enqueue=function(e,p){//添加一个元素到队列尾部 var queueEle=new QueueEle(e,p); var added=false; //priority小的优先级高,优先级高的在队头 if(this.isEmpty()){ items.push(queueEle); }else{ for(var i=0;iqueueEle.priority){ items.splice(i,0,queueEle); added=true; break; } } if(!added){ items.push(queueEle); } } } this.isEmpty=function(){ return items.length==0; } this.dequeue=function(){ return items.shift(); } this.clear=function(){ items=[]; } this.print=function(){ console.log(items); } this.mylength=function(){ return items.length; }}var pqueue=new Priorityqueue();pqueue.enqueue('a',2);pqueue.enqueue('b',1);pqueue.enqueue('c',2);pqueue.enqueue('d',2);pqueue.enqueue('e',1);pqueue.print();//[ QueueEle { element: 'b', priority: 1 },// QueueEle { element: 'e', priority: 1 },// QueueEle { element: 'a', priority: 2 },// QueueEle { element: 'c', priority: 2 },// QueueEle { element: 'd', priority: 2 } ] 运行结果:

在正确的位置添加元素:如果队列为空,可以直接将元素入列。否则,就需要比较该元素与其他元素的优先级。当找到一个比要添加的元素优先级更低的项时,就把新元素插入到它之前,这样,对于其他优先级相同,但是先添加到队列的元素,我们同样遵循先进先出的原则。
最大优先队列:优先级的值大的元素放置在队列前面。
循环队列
实现击鼓传花游戏。
//创建一个类来表示队列function Queue(){ var items=[];//保存队列里的元素 this.enqueue=function(e){//添加一个元素到队列尾部 items.push(e); } this.dequeue=function(){//移除队列的第一项,并返回 return items.shift(); } this.front=function(){//返回队列的第一项 return items[0]; } this.isEmpty=function(){//如果队列中部包含任何元素,返回true,否则返回false return items.length==0; } this.mylength=function(){//返回队列包含的元素个数 return items.length; } this.clear=function(){//清除队列中的元素 items=[]; } this.print=function(){//打印队列中的元素 console.log(items); }}//击鼓传花function hotPotato(namelist,num){ var queue=new Queue(); for(var i=0;i1){ for(i=0;i运行结果:
得到一份名单,把里面的名字全都加入队列。给定一个数字,然后迭代队列。从队列头移除一项,加入到队列尾部,模拟循环队列。一旦传递次数达到给定的数字,拿到花的那个人就被淘汰。最后只剩一个人的时候,他就是胜利者。
感谢各位的阅读,以上就是"JavaScript数据结构之优先队列与循环队列怎么实现"的内容了,经过本文的学习后,相信大家对JavaScript数据结构之优先队列与循环队列怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
队列
元素
优先级
循环
数据
数据结构
结构
尾部
学习
位置
内容
就是
数字
结果
传花
运行
最小
相同
两个
个人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
无锡服务器维修华硕
数据库中的最小数据项是什么
慧眼数据库审计
磐石网络技术公司本部在哪里
杭州市网络安全研究所待遇
mysql数据库删不掉
巨杉数据库上班时间怎样
数据库安全维护是什么工作
数据库备份到另一个表上怎么写
文明重启买哪个服务器
郑州柏龙达网络技术服务
软件开发诈骗
内交换服务器
没有密码怎么进入别人服务器
山西网络技术服务定做价格
什么是社交网络技术
信息网络安全基础
复印机服务器是pc服务器吗
电子对抗学院网络安全专业
i春秋网络安全分享
网络技术服务技术指导
想搭云服务器都要学什么
软件开发是需要数学好的吗
吉林省知了互联网科技
绝地大逃杀服务器架设
杭州鲲鹏服务器
衡阳正规软件开发哪家便宜
西安旅游团软件开发
建设综合风险基础数据库
越南网络安全立法