Queue 队列用数组实现

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];
        }
    }
}

发布了42 篇原创文章 · 获赞 0 · 访问量 251

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览