首页 > 其他分享 >队列

队列

时间:2022-10-27 22:11:43浏览次数:36  
标签:arr 队列 int maxsize front public rear

主函数测试

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

标签:arr,队列,int,maxsize,front,public,rear
From: https://www.cnblogs.com/jinnice/p/16834195.html

相关文章

  • *PAT_甲级_1056 Mice and Rice (25分) (C++)【模拟/队列的应用】
    目录​​1,题目描述​​​​题目大意​​​​输入​​​​输出​​​​2,思路​​​​数据结构​​​​算法​​​​3,代码​​​​4,运行结果​​1,题目描述(这一题是真的迷,看了N......
  • 循环队列的队空、队满、元素个数判断
    front指向队头元素的前一个元素,raer指向队尾元素(写题时,只是单说循环单链表的,默认就是这种)判断空满队空:front=rear;入队:rear=(rear+1)%MaxSize;queuerea......
  • 数据结构 玩转数据结构 3-8 数组队列和循环队列的比较
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13425 1重点关注1.1数组队列和循环队列的比较循环队列出队的复杂度循环队列为O(1......
  • 数据结构 玩转数据结构 3-7 循环队列的实现
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13424 1重点关注1.1循环队列代码实现(出队复杂度为O(1))见3.1 2课程内......
  • 【leetcode_C++_栈与队列_day9】232.用栈实现队列&&225. 用队列实现栈
    知识补充:栈与队列理论基础(C++)C++中stack是容器么?​ stack:堆栈栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种......
  • 栈和队列不分家
    写在前面对于我个人来说,我会把数据机构初阶分为三个台阶,今天谈的和之前谈的是一个阶段,后面的二叉树一个,排序一个.栈和队列也同样是我们后面模拟实现二叉树递归和广度遍......
  • 优先队列--著名的TopK问题(最小堆的使用)
    692. TopKFrequentWordsMedium77671FavoriteShareGivenanon-emptylistofwords,returnthe k mostfrequentelements.Youranswershouldbesortedbyfrequen......
  • 队列结构(Queue)
    队列结构(Queue)队列也是一种受限的线性表,他的特点是先进先出受限之处在于他只允许在表的前端(front)进行删除操作而在表的后端(rear)进行插入操作队列的常见操作:enqu......
  • 消息队列之RabbitMQ介绍与运用
    RabbitMQ说明本章,我们主要从RabbitMQ简介、RabbitMQ安装、RabbitMQ常用命令、RabbitMQ架构模式、RabbitMQ使用、Quick.RabbitMQPlus的使用和RabbitMQ总结这几个方面对R......
  • 队列
    4、队列队列(Queue)是只允许在一段插入另一端删除的线性表先进先出(FIFO)4.1、顺序队列队列定义和初始化#include<stdio.h>#include<stdlib.h>#defineMaxSize10......