队列

主函数测试

public class criclqueue {
    int front;
    int rear;
    int maxsize;
    int[] arr;
    public criclqueue(int maxsize)
    {
        this.maxsize = maxsize;
        front = 0;
        rear = 0;
        arr = new int[maxsize];
    }
    public void creatqueue(int length)
    {
        maxsize=length;
        arr=new int[maxsize];
    }
    public boolean isfull()
    {
        return (rear+1)%maxsize==front;
    }
    public boolean isempty()
    {
        return front==rear;
    }
    public void adddata(int n)
    {
        if(isfull())
        {
            System.out.println("队列已经满了");
        }
        arr[rear]=n;
        rear=(rear+1)%maxsize;
    }
    public int getdata()
    {
        if(isempty())
        {
            System.out.println("队列为空");
        }
        int vale=arr[front];
        front=(front+1)%maxsize;
        return vale;
    }
    public int size()
    {
        return (rear-front+maxsize)%maxsize;
    }
    public void show() throws Exception {
        if(isempty())
        {
            System.out.println("队列为空");
            return;
        }
        for(int i=front;i<front+size();i++)
        {
            System.out.printf("arr[%d]=%d\n",i%maxsize,arr[i%maxsize]);
        }
    }
    public int headqueue() throws Exception {
        if(isempty())
        {
            throw new Exception("队列为空");
        }
        return arr[front];
    }
}

环形队列

public class criclqueue {
    int front;
    int rear;
    int maxsize;
    int[] arr;
    public criclqueue(int maxsize)
    {
        this.maxsize = maxsize;
        front = 0;
        rear = 0;
        arr = new int[maxsize];
    }
    public void creatqueue(int length)
    {
        maxsize=length;
        arr=new int[maxsize];
    }
    public boolean isfull()
    {
        return (rear+1)%maxsize==front;
    }
    public boolean isempty()
    {
        return front==rear;
    }
    public void adddata(int n)
    {
        if(isfull())
        {
            System.out.println("队列已经满了");
        }
        arr[rear]=n;
        rear=(rear+1)%maxsize;
    }
    public int getdata()
    {
        if(isempty())
        {
            System.out.println("队列为空");
        }
        int vale=arr[front];
        front=(front+1)%maxsize;
        return vale;
    }
    public int size()
    {
        return (rear-front+maxsize)%maxsize;
    }
    public void show() throws Exception {
        if(isempty())
        {
            System.out.println("队列为空");
            return;
        }
        for(int i=front;i<front+size();i++)
        {
            System.out.printf("arr[%d]=%d\n",i%maxsize,arr[i%maxsize]);
        }
    }
    public int headqueue() throws Exception {
        if(isempty())
        {
            throw new Exception("队列为空");
        }
        return arr[front];
    }
}
posted @   jinnice  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示