JavaScript优先队列与循环队列怎么实现
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,本篇内容介绍了"JavaScript优先队列与循环队列怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2024年10月09日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优先队列与循环队列怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
队列
元素
优先级
循环
尾部
位置
内容
数字
更多
知识
结果
传花
运行
实用
最小
相同
学有所成
接下来
两个
个人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
斗鱼 软件开发
河津天气预报软件开发
用户注册登录数据库
网络技术相关就业信息
东方海外软件开发 csdn
软件开发培训学校其
无线网络技术课程编码
qt打包数据库文件
cq网络技术站网址
大百上街网络技术有限公司
数据库日志级别
东城分局网络安全保卫大队
软件开发怎么做兼职
中科曙光安全服务器
国家军用标准全文数据库
云服务器都有多大的
承德微生活网络技术服务公司
看门狗二连不上育碧服务器怎么办
ctf网络安全大赛的冠军
凉山软件开发有限公司
河北软件开发招标报价
群晖邮箱服务器手机设置
医院调试服务器怎么收费
数据库表拆成小表
骑砍战团联机无法连接服务器
数据库系统管理员工作标准
能耗管理软件开发服务
维护服务器的安全方法
软件开发含税价
数据库技术与应用冯博琴答案