zoukankan      html  css  js  c++  java
  • 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());
            }
        }
  • 相关阅读:
    Thinkphp --- 入口文件
    Thinkphp --- 路由定义
    thinkphp --- 写入日志
    BeginnerAdmin后台框架的使用!
    windows本地环境如何用wamp配置多域名绑定访问
    微信小程序 --- 设置页面的标题
    豆瓣api开发
    微信开发 --- 微信支付
    微信小程序 --- 完成小程序支付功能
    thinkphp发起网络请求
  • 原文地址:https://www.cnblogs.com/googlemeoften/p/4792972.html
Copyright © 2011-2022 走看看