Java数组模拟队列

/**
 * 模拟队列
 */
public class ArrayQueue {
    private int maxSize;//表示数组的最大容量
    private int front; //队列头
    private int rear;  //队列尾
    private int[] arr; //用于存放数据,模拟队列

    //创建队列
    public void arrayQueue(int arrayMaxSize){
        maxSize = arrayMaxSize;
        arr = new int[maxSize];
        front = -1; //指向队列头部,分析出front是指向队列头的前一个位置
        rear = -1;  //指向队列尾,指向队列为的数据。
    }

    //判断队列是否为空
    public boolean isEmpty(){
        return front == rear;
    }

    //判断队列是否满
    public boolean isMax(){
        return rear == maxSize - 1;
    }

    //添加数据到队列中
    public void addData(int x){
        //先判断队列是否满了
        if (isMax()){
            System.out.println("队列已满,无法添加数据。");
            return;
        }
        rear++;
        arr[rear] = x;
    }

    //从队列中获取数据
    public int getData(){
        //先判断队列是否为空
        if (isEmpty()){
            throw new RuntimeException("队列为空,无数据可获取。");
        }
        front++;
        int result = arr[front];
        return result;
    }
}

 

你可能感兴趣的:(数据结构,Java)