(3)队列

队列相比与栈的特点是先进先出,和日常生活中的排队是一样的。
写一个简单队列:


public class Queue {
    private Object[] data;
    private int maxSize;    //队列的最大长度
    private int front;      //队头
    private int rear;       //队尾
    private int length;     //队列当前长度

    public Queue(int size){ //初始化队列
        this.maxSize = size;
        this.front = this.rear = 0;
        this.data = new Object[maxSize];
    }

    public boolean empty(){ //  判断队列是否为空
        return this.length == 0;
    }

    public void insert(Object o){ //入队
        if(maxSize == rear){
            System.out.println("队满");
            return;
        }else{
            data[rear] = o;
            rear = (rear + 1)%maxSize;
            length ++;
        }
    }

    public void peek(){ //查看队首元素
        if(empty()){
            System.out.println("队列为空!");  
            return;
        }   
        System.out.println(data[front]);
    }

    public void delete(){   //出队
        if(empty()){
            System.out.println("队列为空!");  
            return;
        }
        data[front] = null; //释放队首元素
        front = (front+1)%maxSize;  //队首指针加1
        length-- ;  //队列实际长度-1
    }

    public void printQueue() {  
        if(empty()) {  
            System.out.println("队列为空!");  
            return;  
        } 
        for(int i = 0; i < length; i++) {  
            System.out.print(data[front++ %maxSize] + " ");  
        }
    } 

}

猜你喜欢

转载自blog.csdn.net/pianpiannia/article/details/76377041
今日推荐