首页 > 代码库 > 第一篇博客——基于数组的优先队列(java版)
第一篇博客——基于数组的优先队列(java版)
看过园子里和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 }
当然,这代码有很多不足之处,比如每次插入时要判断是否已满,弹出时要判断是否为空,这我都省略未写,大概意思表达清楚就行了。
好了,今天就写这么点,争取以后每天都有新博文。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。