java数据结构与算法值优先级队列

一、优先级队列

  什么是优先级队列:优先级队列是一种比栈和队列更加常用的一种数据结构。在优先级队列中,数据项按照关键字的值有序。数据项插入到队列中时,会按照顺序插入到合适的位置,用来保证队列的顺序。

  生活中的例子,假设你有若干封件,你最急需要处理的文件就放在所有邮件的 顶部,如果不急需处理的文件就放放在下面。

  参考代码:

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());
        }
    }
原文地址:https://www.cnblogs.com/googlemeoften/p/4792972.html