JavaScript中队列的优先级

用JavaScript中实现队列的优先级, 代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>优先队列</title>
	</head>
	<body>
		<script type="text/javascript">
			//创建一个优先队列
			function Firque() {
				this.item = []
				//队列的优先级
				function Que(el, psi) {
					this.item = el
					this.psi = psi
				}
				Firque.prototype.enque = (el, psi) => {
					//判断优先级
					let data = new Que(el, psi)
					let flg = false//创建一个变量, 如果判断没有进去的话, 则在最后添加
					
					for(let i =0; i<this.item.length; i++) {
						if(data.psi < this.item[i].psi) {
							//判断优先级, 如果新加的优先级小于原本的优先级, 则用splice的方法添加
							this.item.splice(i, 0, data)
							flg = true
							break//跳出循环,  防止多余的添加,或则性能浪费
						}
					}
					if(!flg) {//如果上面循环没有添加, 则最后添加
						this.item.push(data)
					}
				}
			}
			let pq = new Firque()
			pq.enque('第一个内容', 10)
			pq.enque('第二个内容', 9)
			pq.enque('第三个内容', 11)
			pq.enque('第四个内容', 20)
			pq.enque('第五个内容, 虽然我是最后添加的, 但是我有vip,免除排队', 1)
			console.log(pq)
		</script>
	</body>
</html>

其他基本方法和队列一致, 可以去看我之前发的队列

效果图:

优先级越高所在的位置越靠前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值