优先级队列

2018-04-13  本文已影响3人  码出高效

核心思想:

在优先级队列中,数据项按关键字的值有序,这样的关键字最小的数据项或者最大的总是在队头,数据项插入时会按照顺序插入到合适的位置,以保证队列的顺序。

package 优先级队列;

public class Queue {

private long[] arr;// 数组

private int maxSize;// 初始化值

private int elems;// 有效元素

public Queue(int maxSize) {

this.maxSize = maxSize;

arr = new long[maxSize];

elems = 0;

}

// 插入数据

public void insert(long value) {

int i;

for (i = 0; i < elems; i++) {

if (arr[i] < value) {

break;

}

}

for (int j = elems; j > i; j--) {

arr[j] = arr[j - 1];

}

arr[i] = value;

elems++;

}

// 移除数据

public long remove() {

long value=arr[elems-1];

elems--;

return value;

}

// 是否为空

public boolean isEmpty() {

return (elems == 0);

}

// 是否满了

public boolean isFull() {

return (elems == maxSize);

}

// 返回有效元素的大小

public int size() {

return elems;

}

}

上一篇 下一篇

猜你喜欢

热点阅读