public class QueueUtil {
private int maxSize;//数组的长度
private int index;//元素的下标
private int[] array;
//初始化
public QueueUtil(int size){
maxSize=size;
array = new int[maxSize];
index=0;
}
//插入操作,优先级队列的顺序从大到小排列,最先开始是和最底部的元素比较
public void insert(int item){
int j;
if (index==0) {
array[index++]=item;//array[0]=item
}else {
for (j = index-1; j >=0; j--) {
if (item > array[j]) {
array[j+1] = array[j];//array[j]向上移动
}else {
break;//终止for循环
}
}
array[j+1] = item;//因为此时数组已经
index++;
}
}
//去顶
public int pop(){
return array[--index];
}
//获得最顶部的数据,但不删除
public int peek(){
return array[index-1];
}
//判断栈是否为空
public boolean isEmpty(){
return index==0;
}
//判断是否已满
public boolean isFull(){
return index==maxSize;
}
}
//Main.java
public class Main {
public static void main(String[] args) {
QueueUtil queueUtil = new QueueUtil(5);
if (!queueUtil.isFull()) {
queueUtil.insert(100);
}
if (!queueUtil.isFull()) {
queueUtil.insert(10);
}
if (!queueUtil.isFull()) {
queueUtil.insert(50);
}
if (!queueUtil.isFull()) {
queueUtil.insert(180);
}
if (!queueUtil.isFull()) {
queueUtil.insert(20);
}
//循环
while (!queueUtil.isEmpty()) {
int i=queueUtil.pop();
System.out.println("弹出的值为"+i+"\n");
}
}
}