优先级队列 川长思鸟来 2021-09-23 07:04 448阅读 0赞 /** * @auther: 巨未 * @DATE: 2019/1/6 0006 10:11 * @Description: 数据结构的队列Queue和集合框架库的队列(小根堆:根节点的值小于左右孩子)不一样 * 优先级队列!(最前面的优先级最小, 插入按照优先级的高低插入 */ class PrioQueue{ class Entry{ int data; int prio; //优先级 Entry next; public Entry(){ this.data = -1; this.prio = -1; this.next = null; } public Entry(int val,int prio) { this.data = val; this.prio = prio; this.next = null; } } private Entry head = null; public PrioQueue(){ this.head = new Entry(); } /*入队*/ public void pushQueue(int val,int prio){ if(isFull()){ return; } Entry cur = this.head; while (cur.next != null) { //遍历一次 if (cur.next.prio > prio) { //入队的优先级 小于要入队的下一个节点的优先级 break; } cur = cur.next; } Entry entry = new Entry(val,prio); //入队的节点 entry.next = cur.next; cur.next = entry; } /*判空*/ public boolean isEmpty(){ return this.head.next == null; } /*判满*/ public boolean isFull(){ return this.head == null; } /*出队*/ public int popQueue(){ if(isEmpty()){ throw new UnsupportedOperationException("is Empty!"); } Entry del = this.head.next; int data = del.data; this.head.next = del.next; return data; } /*打印*/ public void show(){ Entry cur = this.head.next; if(isEmpty()){ System.out.println("队列为空!"); } while(cur != null){ System.out.print(cur.data+" "); cur = cur.next; } System.out.println(); } } public class TestPrioQueue { public static void main(String[] args) { PrioQueue prioQueue = new PrioQueue(); prioQueue.pushQueue(10,9); prioQueue.pushQueue(20,4); prioQueue.pushQueue(30,5); prioQueue.pushQueue(40,0); prioQueue.show(); //40 20 30 10 System.out.println(prioQueue.popQueue()); // 40 prioQueue.show();// 20 30 10 } }
相关 PriorityQueue优先级队列 文章目录 1.概念 2.优先级队列的模拟实现 2.1 堆的概念 2.2堆的创建 2.2.1堆的向下调整 偏执的太偏执、/ 2024年04月03日 11:19/ 0 赞/ 91 阅读
相关 优先级队列 1. 优先级队列 1.1 概念 前面介绍过队列, 队列是一种先进先出 (FIFO) 的数据结构 ,但有些情况下, 操作的数据可能带有优先级,一般出队 列时,可能需要优先级 喜欢ヅ旅行/ 2024年04月01日 15:34/ 0 赞/ 91 阅读
相关 优先级队列 目录 1.优先级队列 2.优先级队列的模拟实现 2.1堆的概念 2.2堆的创建 2.2.1堆向下调整 2.2.2堆的创建 2.2.3堆的时间复杂度 2.3堆的插 £神魔★判官ぃ/ 2024年03月27日 15:46/ 0 赞/ 88 阅读
相关 优先级队列(堆) 优先级队列 概念 > 我们知道,队列是一种先进先出的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,该中场景下,使用 灰太狼/ 2024年02月22日 09:32/ 0 赞/ 76 阅读
相关 Java 优先级队列 文章目录 Java 优先级队列 PriorityQueue简介 继承关系 PriorityQueue示例 Co 刺骨的言语ヽ痛彻心扉/ 2023年10月09日 13:55/ 0 赞/ 54 阅读
相关 优先级队列 前面说过普通队列以及循环队列的使用。关于队列还有一种常用的数据结构:优先级队列。先来看一下下面实际背景: 在办公的时候,桌面上会有一堆需要处理的文件。但是事有轻重缓急, 心已赠人/ 2022年07月18日 00:26/ 0 赞/ 281 阅读
相关 优先级队列PriorityQueue PriorityQueue 概述: PriorityQueue是优先级队列,底层采用最小堆原理进行排序。优先级队列声明下一个弹出的元素都是优先级最高的元素。 P 爱被打了一巴掌/ 2022年06月06日 10:05/ 0 赞/ 293 阅读
相关 优先级队列 链接:[https://www.cnblogs.com/Anker/archive/2013/01/23/2873951.html][https_www.cnblogs.com 柔光的暖阳◎/ 2022年01月16日 22:13/ 0 赞/ 555 阅读
相关 优先级队列 include <iostream> using namespace std; int parent(int i) { 待我称王封你为后i/ 2021年12月16日 10:25/ 0 赞/ 395 阅读
相关 优先级队列 / @auther: 巨未 @DATE: 2019/1/6 0006 10:11 @Description: 川长思鸟来/ 2021年09月23日 07:04/ 0 赞/ 449 阅读
还没有评论,来说两句吧...