首页 > 试题广场 >

实现一个队列,并提供入队(queue)和出对(dequeue

[问答题]

实现一个队列,并提供入队(queue)和出对(dequeue)操作,队列存储的数据为整型数,并且队列没有容量限制(假设内存够用),注意不要使用外部的数据结构 

public class Queue {
    private int[] data;         //存放数据的数组
    private int front=0;        //队列头所在的索引
    private int rear=0;         //队列尾所在的索引
    private int size=0;         //队列的大小

    public Queue(int size) {
        this.size = size;      //队列的大小
        data = new int[size];  //初始化数组
    }

    /**
     * 入队操作
     * @param value
     */
    public void in(int value) throws Exception {
        if(rear == size){
            throw  new Exception("队列已经满了");
        }
        data[rear++] = value;
    }

    /**
     * 出队操作
     */
    public int out() throws Exception {
        if(isEmpty()){
            throw  new Exception("队列是空队列");
        }
        int value = data[front];
        front++;
        return value;
    }

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

    /**
     * 遍历队列中的元素
     */
    public void traverse(){
        for(int i = front; i < rear; i++){
            System.out.println(data[i]+" ");
        }
    }
}


发表于 2020-04-27 11:00:26 回复(0)