Java对队列的基本操作

数据结构之基本数据结构---队列:先入先出

百度百科:

  队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,

队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

代码展示:

public class MyQueue {
    private int[] arr; // 队列的底层实现是一个数组
    private int front; //队头
    private int rear;  //队尾
    private int size;  //初始化队列容量
    //初始化
    public MyQueue(int size){
        arr=new int[size];
        front=0;
        rear=-1;
        this.size=size;
    }
    //入队
    public void insertQueue(int n){
        if(isFull()){
            System.out.println("队列已满!");
        }else{
            arr[++rear]=n;
        }
    }
    //出队
    public int getQueue(){
        int n;
        if(isEmpty()){
            n=0;
            System.out.println("栈已空!");
        }else{
            n=arr[front];
            front++;
        }
        return n;
    }
    //贩毒案是否为空
    public boolean isEmpty(){
        return front==(rear+1);
    }
    //判断是否队满
    public boolean isFull(){
        return (rear+1)==size;
    }
    public int getQueueLength(){
        return (rear+1)-front;
    }
    public static void main(String[] args) {
        MyQueue myQueue=new MyQueue(10);
        int i=0;
        while(!myQueue.isFull()){
            myQueue.insertQueue(++i);
        }
        System.out.println(myQueue.getQueueLength());
        while(!myQueue.isEmpty()){
            System.out.println(myQueue.getQueue());
        }
        System.out.println(myQueue.getQueueLength());
    }

}
发布了84 篇原创文章 · 获赞 0 · 访问量 698

猜你喜欢

转载自blog.csdn.net/qq_38405199/article/details/103535795