队列
队列介绍
队列是一个有序列表,可以用链表或数组实现。
遵循先入先出的原则:即先存入队列的数据要先取出,后存入队列的数据要后取出。
实现思路
插入元素:
每次插入数据前需要判断队列是否已经满了,满了则无法插入。
如果队列未满,可以在头部将元素进行插入。
删除元素:
每次删除元素前需要判断是否还有元素。
删除元素,把第一位元素(最新插入的元素)进行删除,把队列中后面的元素往前挪动一位。
代码示例
public class ArrayQueue {
private int maxSize;
private int front;
private int rear;
private int[] arr;
/**
* 构造器,新建队列
*/
public ArrayQueue(int arrMaxSize){
maxSize = arrMaxSize;
arr =new int[arrMaxSize];
front = -1; //队列当前开头位置
rear = -1; //队列当前结尾位置
}
/**
* 判断当前队列是否满了
*/
public boolean isFull(){
return rear == maxSize-1;
}
/**
* 往队列里面添加一个数,返回是否成功的布尔类型
*/
public boolean insertArray(int num){
if(isFull()){
System.out.println("已满,无法添加!");
return false;
}
arr[++rear] = num;
return true;
}
/**
* 从队列里面抽出一个数出来,返回是否成功的布尔类型
*/
public int deleteArray(){
//首先判断队列中是否有元素
if(front==rear){ //当前队列并没有元素,返回-1
return 0;
}
//当前队列有元素,需要将结尾位置减去1,并且将数组元素全部往前面挪动一位,然后函数返回抽出来的元素
int returnNum = arr[0];
for(int i=1;i<=rear;i++){
arr[i-1]=arr[i];
}
rear--;
return returnNum;
}
/**
* 遍历当前数组的所有元素并且将其输出
*/
public void outPut(){
for (int i=0;i<=rear;i++){
System.out.print(arr[i]+" ");
System.out.println();
}
}
}
评论 (0)