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

第一篇博客——基于数组的优先队列(java版)

时间:2014-08-02 20:50:34      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   io   ar   代码   div   

      看过园子里和CSND上那么多大牛精彩的博客后,早就按捺不住想亲手写上几篇。奈何每次坐在电脑前准备敲字的时候,立马赶到浑身不自在,无从下手。实在是因为自高考之后,大学以来,本人几乎就再没动笔写过一篇文字,写作水平退化实在严重。今天鼓起勇气开始写作博客,一方面希望通过多写慢慢地找回写作的感觉,一方面也希望通过博客和大家多多交流,共同进步。

      既然是第一次试手,就写个简单易懂的内容——优先队列。

  话不多说,先上代码。

 1 /**
 2  * @author Mr Left
 3  * @version 1.0
 4  */
 5 public class PriorityQueue {
 6     private int[] elems;
 7     private int max;//队列最大容量
 8     private int size;//队列当前容量
 9     
10     public PriorityQueue(int s) {
11         this.max = s;
12         elems = new int[max];
13         size = 0;
14     }
15     
16     public void enqueue(int ele) {
17         if(size == 0) 
18             elems[size++] = ele;
19         else {
20             int i = size-1;
21             while(i>=0 &&  ele<elems[i]) {
22                 elems[i+1] = elems[i];
23                 i--;
24             }
25             elems[i+1] = ele;
26             size++;
27         }
28         
29     }
30     
31     public int dequeue() {
32         return elems[--size];
33     }
34     
35     public int peek() {
36         return elems[size-1];
37     }
38     
39     public boolean isEmpty() {
40         if(size == 0)
41             return true;
42         else 
43             return false;
44     }
45     public boolean isFull() {
46         if(size == max)
47             return true;
48         else 
49             return false;
50     }
51     
52     
53     public static void  main(String[] args) {
54         PriorityQueue priorityQueue = new PriorityQueue(10);
55         priorityQueue.enqueue(1);
56         priorityQueue.enqueue(3);
57         priorityQueue.enqueue(2);
58         priorityQueue.enqueue(9);
59         priorityQueue.enqueue(4);
60         priorityQueue.enqueue(5);
61         priorityQueue.enqueue(3);
62         priorityQueue.enqueue(2);
63         priorityQueue.enqueue(3);
64         priorityQueue.enqueue(2);
65         
66         System.out.println(priorityQueue.dequeue());
67         System.out.println(priorityQueue.dequeue());
68         System.out.println(priorityQueue.dequeue());
69         System.out.println(priorityQueue.dequeue());
70         System.out.println(priorityQueue.dequeue());
71         System.out.println(priorityQueue.dequeue());
72         System.out.println(priorityQueue.dequeue());
73         System.out.println(priorityQueue.dequeue());
74         System.out.println(priorityQueue.dequeue());
75         System.out.println(priorityQueue.dequeue());
76     }
77 }

  当然,这代码有很多不足之处,比如每次插入时要判断是否已满,弹出时要判断是否为空,这我都省略未写,大概意思表达清楚就行了。

  好了,今天就写这么点,争取以后每天都有新博文。

第一篇博客——基于数组的优先队列(java版),布布扣,bubuko.com

第一篇博客——基于数组的优先队列(java版)

标签:style   blog   color   java   io   ar   代码   div   

原文地址:http://www.cnblogs.com/leihaibo/p/3887125.html

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