java优先队列

java优先队列,第1张

import java.util.*;

class node{
    public int key;
    public int sec;
}


public class 优先队列 {
    static node[] a=null;
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        Comparator cmp= (o1, o2) -> {
            if(o1.key==o2.key)return o1.sec-o2.sec;
            return o1.key-o2.key;//返回值大于0就交换o1 o2
        };
        Queueq=new PriorityQueue<>(cmp);//形参comparator–将用于排序此优先级队列的比较器。如果为空,将使用元素的自然顺序
        int n=in.nextInt();
        a=new node[n];
        for (int i = 0; i < n; i++) {
            a[i]=new node();
            a[i].key=in.nextInt();
            a[i].sec=in.nextInt();
            q.add(a[i]);
        }
        while(!q.isEmpty()){
            System.out.println(q.peek().key+" "+q.peek().sec);//读取队首元素
            q.poll();//出队
        }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/891395.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-14
下一篇2022-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存