java中的优先队列

在生活中,我们常会遇到这样的问题,排队过程中女士优先,游戏中会员比普通用户

的优先级也要高,这就有了我们的优先队列。

优先队列的简单说就是在普通队列中加入标志,比如我们用数字 0  1 2 3来表示,数

字小的对应节点的优先级就高,我们就将他放在合适的位置。如图


新节点的标志等级是3,我们要把他插入到1后面,进而使得整个队列优先合适

初始化

class prioLink{
	class Entry{
		int data;
		Entry next;
		int prio;//优先级
		
		public Entry(){
			data = -1;
			next = null;
			prio = -1;
		}
		public Entry(int data,int prio){
			this.data = data;
			this.prio = prio;
			next = null;
		}
	}
	private Entry head = null;
	public prioLink(){
		head = new Entry();
	}

入队

//按照优先级进行插入
	public boolean isnull(){
		if(head == null){
			return true;
		}
		return false;
	}
	//入队
	public void insert(int data,int prio){
		Entry cur = new Entry(data,prio);
		Entry entry = head;
		if(isnull()){
			return;
		}
		while(entry.next!=null){
			if(entry.next.prio>cur.prio){
				break;
			}
			entry = entry.next;
		}
		cur.next = entry.next;
		entry.next = cur;	
	}

出队

//出队
	public void pop(){
		if(isnull()){
			return ;
		}
		Entry cur = this.head.next;
		head.next = cur.next;
		
	}

输出

public void show(){
		Entry cur = this.head.next;
		while(cur!=null){
			System.out.println("data: "+cur.data);
			cur = cur.next;
		}
	}




新手入门,如有错误,请多多指教

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值