package com.itzkx.queue;
import java.util.concurrent.ExecutionException;
public class ArrayQueueDemo {
public static void main(String[] args) {
}
}
//使用数组模拟队列-编写一个ArrayQueue类
class ArrayQueue{
private int maxSize; //表示数组的最大容量
private int front; //队列头
private int rear; //队列尾
private int[] arr; //该数组用于存放数据,模拟队列
//创建队列的构造器
public ArrayQueue(int arrMaxSize){
maxSize = arrMaxSize;
arr = new int[maxSize];
rear = arr[-1];
front= arr[-1];
}
//判断队列是否已满
public boolean isFull(){
return rear==maxSize-1;
}
//添加元素
public void addQueue(int n){
//先判断队列满了没
if(isFull()){
throw new RuntimeException("队列已满");
}
//尾指针+1
rear++;
//赋值
arr[rear]=n;
}
////判断队列是否为空
public boolean isEmpty(){
return rear==front;
}
//取出元素
public void showQueue(){
if(isEmpty()){
//通过抛出异常
throw new RuntimeException("队列为空,不可以再取");
}
//取出元素
for (int i=0;i<arr.length;i++){
System.out.printf("arr[%d]=%d\n",i,arr[i]);
}
}
//显示队列的头部,不是取出数据
public int headQueue(){
//判断数据是否为空
if(isEmpty()){
//通过抛出异常
throw new RuntimeException("队列为空,不可以再取");
}
return arr[front+1];
}
}
网友评论