码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-10-17 15:42:00      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:java   存储结构   队列的实现   效率   span   实现   div   有用   操作系统   

 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 }

 

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

标签:java   存储结构   队列的实现   效率   span   实现   div   有用   操作系统   

原文地址:http://www.cnblogs.com/sun1993/p/7680478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!