js优先队列怎么实现
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍了js优先队列怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在优先队列中,元素的添加或者删除是基于优先级的。实
千家信息网最后更新 2025年02月01日js优先队列怎么实现
这篇文章主要介绍了js优先队列怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
在优先队列中,元素的添加或者删除是基于优先级的。
实现优先队列有两种方式:
1、优先添加,正常出列。在实现队列的基础上,把添加进队列的元素从普通数据改为对象(数组)类型,该对象包含需要添加进队列的元素的值和优先级。
2、正常添加,优先出列。
实例
function PriorityQueue() { //初始化队列(使用数组实现) var items = [] //因为存在优先级,所以插入的列队应该有一个优先级属性 function queueEle(ele, priority) { this.ele = ele this.priority = priority } //入队 this.enqueue = function (ele, priority) { let element = new queueEle(ele, priority) //为空直接入队 if (this.isEmpty()) { items.push(element) } else { var qeueued = false; //是否满足优先级要求,并且已经入队 for (let i = 0; i < this.size(); i++) { if (element.priority < items[i].priority) { items.splice(i, 0, element) qeueued = true break; } } //如果不满足要求,没有按要求入队,那么就直接从尾部入队 if (!qeueued) items.push(element) } } //出队 this.dequeue = function () { return items.shift() } //返回首元素 this.front = function () { return items[0] } //队列是否为空 this.isEmpty = function () { return items.length == 0 } //清空队列 this.clear = function () { items = [] } //返回队列长度 this.size = function () { return items.length } //查看列队 this.show = function () { return items }}var priorityQueue = new PriorityQueue();priorityQueue.enqueue('优先级2-1', 2);priorityQueue.enqueue('优先级1-1', 1);priorityQueue.enqueue('优先级1-2', 1);priorityQueue.enqueue('优先级3-1', 3);priorityQueue.enqueue('优先级2-2', 2);priorityQueue.enqueue('优先级1-3', 1);priorityQueue.show(); // 按优先级顺序输出//输出[0:queueEle {ele: "优先级1-1", priority: 1},1:queueEle {ele: "优先级1-2", priority: 1},2:queueEle {ele: "优先级1-3", priority: 1},3:queueEle {ele: "优先级2-1", priority: 2},4:queueEle {ele: "优先级2-2", priority: 2},5:queueEle {ele: "优先级3-1", priority: 3}]
感谢你能够认真阅读完这篇文章,希望小编分享的"js优先队列怎么实现"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
优先级
队列
元素
篇文章
对象
数组
输出
普通
价值
兴趣
同时
基础
实例
尾部
属性
数据
方式
更多
朋友
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
税务网络安全貝体
学子软件开发有限公司
服务器 蓝屏
佛山企业网站建设服务器
数据库四条语句
有5g数据库吗
激活工具服务器打不开
壹家乐网络技术
浪潮服务器资讯
内网搭建dns解析服务器和域名
网络安全第一季度总结
外码添加数据库
删除数据库 跑路
阿里巴巴服务器运维手册
软件开发组主管多少钱一年
瑞安有软件开发公司吗
时序数据库就业方向
剑网3选哪个服务器
合肥企业级服务器如何挑选
网络安全和信息安全师生演练制度
可以用中文搜索的网络数据库
互联网母服务器
服务器url地址限制多长
上海网络技术开发哪个正规
企业办公网络安全
华为手机俩卡怎么开数据库
blued无法连接服务器
工程管理oa管控软件开发平台
运维部门网络安全心得
服务器网络唤醒