千家信息网

JavaScript如何实现优先队列与循环队列

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍了JavaScript如何实现优先队列与循环队列的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript如何实现优先队列与循环队列文章都会有所收
千家信息网最后更新 2025年02月23日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安全错误 数据库的锁怎样保障安全 苹果软件开发哪个学校好 dell服务器2u 阿里云服务器购买后如何远程登陆 如何将应用迁移到另一台服务器上 eea软件开发 南京基础网络技术口碑推荐 软件开发项目转让协议书 昆明学软件开发的五年制大专官网 一个工作室需要多大服务器 宝鸡市高新医院数据库管理 大学生如何防范网络安全问题 软件开发员职业认知 天刀手游服务器问题 银河战舰世界哪个服务器好 数据库文件的扩展名为 如何选择软件开发的平台 饥荒服务器改活动 现在软件开发那个号 软件开发个人技能 合肥老邻居网络技术有限公司 阿里云服务器购买后如何远程登陆 四川服务器是哪个区的服务器 计算机网络技术主滚动字幕 广东erp软件开发外包 数据库表盐性是什么 大专学计算机网络技术可以吗 ei数据库属于什么文献 把数据库的jar包导入项目 网络安全技师 士官 微信怎么开启数据库备份
0