优先级队列2

来源:互联网 发布:虚拟充值软件靠谱吗 编辑:程序博客网 时间:2024/06/07 03:26
package d_queue.C1_priority_queue;


/**
 * 锟斤拷锟饺硷拷锟斤拷锟斤拷 锟斤拷锟斤拷O(1)锟斤拷删锟斤拷锟斤拷
 * 
 * @author Administrator
 * 
 */
public class PriorityApp {
public static void main(String[] args) {
PriorityQ priorityQ = new PriorityQ(5);
priorityQ.insert(90);
priorityQ.insert(10);
priorityQ.insert(20);
priorityQ.insert(50);
priorityQ.insert(8);


while (!priorityQ.isEmpty()) {
long item = priorityQ.remove();
System.out.println(item);
}
}
}package d_queue.C1_priority_queue;


public class PriorityQ {
private int maxSize;
private long[] queArray;
private int nItems;


public PriorityQ(int s) {
maxSize = s;
queArray = new long[s];
nItems = 0;
}


// public void insert(long item) {
// int i;
// if (nItems == 0)
// queArray[0] = item;
// else {
// for (i = nItems - 1; i >= 0; i--) {
// if (queArray[i] < item) {
// queArray[i + 1] = queArray[i];
// } else {
// break;
// }
// }
// queArray[i + 1] = item;
// }
//
// nItems++;
// }
// public long remove() {
// // 锟斤拷锟斤拷锟斤拷小
//
// return queArray[--nItems];
// }


/**
* 锟斤拷锟斤拷时锟戒复锟接讹拷为01

* @param item
*/
public void insert(long item) {
queArray[nItems++] = item;
}


public long remove() {
// 锟斤拷锟斤拷锟斤拷小
int min = 0;
for (int i = 1; i < nItems; i++) {
if (queArray[min] > queArray[i]) {
min = i;
}
}
long temp = queArray[min];
// 锟斤拷位锟斤拷
nItems--;
for (; min < nItems; min++) {
queArray[min] = queArray[min + 1];
}
return temp;
}


public long peekMin() {
return queArray[nItems - 1];
}


public boolean isEmpty() {
return nItems == 0;
}


public boolean isFull() {
return nItems == maxSize;
}


}
0 0
原创粉丝点击