一、优先级队列
什么是优先级队列:优先级队列是一种比栈和队列更加常用的一种数据结构。在优先级队列中,数据项按照关键字的值有序。数据项插入到队列中时,会按照顺序插入到合适的位置,用来保证队列的顺序。
生活中的例子,假设你有若干封件,你最急需要处理的文件就放在所有邮件的 顶部,如果不急需处理的文件就放放在下面。
参考代码:
package edu.structure.queue; public class PriorityQ { private int maxSize; private int[] queArray; private int nElmes; public PriorityQ(int maxSize) { this.maxSize = maxSize; queArray = new int[maxSize]; nElmes = 0; } public void insert(int value) { if (nElmes == 0) { queArray[nElmes++] = value; } else { int i; for (i = nElmes - 1; i >= 0; i--) { if (value > queArray[i]) { queArray[i + 1] = queArray[i]; } else { break; } } queArray[i + 1] = value; nElmes++; } } public int remove() { return queArray[--nElmes]; } public boolean isFull() { return (nElmes == maxSize); } public boolean isEmpty() { return (nElmes == 0); } }
二、测试代码
public static void main(String[] args) { PriorityQ priorityQ=new PriorityQ(10); priorityQ.insert(10); priorityQ.insert(5); priorityQ.insert(77); priorityQ.insert(15); while(!priorityQ.isEmpty()){ System.out.println(priorityQ.remove()); } }
时间: 2024-12-21 02:13:44