优先队列(存储结构数组)--Java实现

 1 /*优先队列--是对队列的一种改进
 2  *要存储的数据存在优先级--数值小的优先级高--在队头
 3  *优先队列的实现
 4  *1.数组:适合数据量小的情况(没有用rear+front实现)
 5  *优先队列头在items-1,队列尾在0是固定的
 6  *2.堆:适合数据量大的情况
 7  *优先队列的效率:插入O(N)移除O(1)
 8  *优先队列的应用:操作系统线程调度算法
 9  * */
10 public class MyPriorityQueue {
11     private int maxSize;
12     private long[] arr;//插入的时候保证有序
13     private int items;
14     
15     public MyPriorityQueue(int s) {
16         maxSize = s;
17         arr = new long[maxSize];
18         items = 0;
19     }
20     
21     public void insert(long key){
22         int j;
23         if(items == 0){//为空直接加入
24             arr[items++] = key;
25         }
26         else{//不为空就将小元素方在最上面--队列头
27             for(j = items-1;j >= 0;j--){
28                 if(key > arr[j]){
29                     arr[j+1] = arr[j];
30                 }
31                 else{
32                     break;
33                 }
34             }
35             arr[j+1] = key;
36             items++;
37         }
38     }
39     
40     public long remove(){
41         return arr[--items];
42     }
43     
44     public boolean isEmpty(){
45         return items == 0;
46     }
47     
48     public boolean isFull(){
49         return items == maxSize;
50     }
51     
52     public long getPeekMin(){
53         return arr[items -1];
54     }
55     
56     public void diaplayPQ(){
57         for(int i = items- 1;i >= 0;i--){
58             System.out.print(arr[i] + " ");
59         }
60         System.out.println();
61     }
62 }

 

转载于:https://www.cnblogs.com/sun1993/p/7680478.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值