欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Queue 队列用数组实现

程序员文章站 2024-03-18 09:16:04
...

Queue 可以用数组,也可以用链表来实现

我们会有两个指针,一个指针负责添加数据,一个指针负责减少数据

注意:font 用来取数据,所以第二次取,要娶下一个

package structure;

public class QueDemo {
    public static void main(String[] args) {

    }
}

class Que{
    private int maxSize;
    private int font;
    private int rear;
    private int [] arr ;

    public Que(int maxSize) {
        font =-1;//指向队列的前一个位置。
        rear = -1;//就是指向队列尾部
        arr = new int[maxSize];
        this.maxSize = maxSize;
    }


    public boolean isfull() {
        return rear == maxSize-1;
    }

    public boolean isEmpty() {
        return rear == font;
    }

    public void add(int num) {
        if (isfull()) {
            System.out.println("已满");

        } else {
            rear++;
            arr[rear] = num;//添加的时候就是指哪添加到哪。所以是一致的。
        }

    }

    public int get() {
        if (isEmpty()) {
            throw new RuntimeException("为空");
        }else {
            font++;
            return arr[font];//因为font指向的数据被取走了。所以必须是下一个
        }
    }

    public void show() {
        if (isEmpty()) {
            System.out.println("没数,怎么打印?");
            return;
        }else {
            for (int i = 0; i < arr.length; i++) {
                int i1 = arr[i];
                System.out.println("i1 = " + i1);
            }
        }



    }

    public int peek(){
        if (isEmpty()) {
            throw new RuntimeException("没有,怎么偷看?");
        } else {
            return arr[font];
        }
    }
}

相关标签: 数据结构