Java有关队列的基本操作

这篇具有很好参考价值的文章主要介绍了Java有关队列的基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是队列?

队列是一种线性数据结构,队列中的元素只能先进先出;
队列的出口端叫做队头,入口端叫做队尾。

队列的基本操作

1.入队:

  •      只允许在队尾的位置放入元素,新元素的下一个位置将会成为新的队尾;
    
public void enQueue(int element) throws Exception{
        if((rear+1)%array.length==front){
            throw new Exception("队满!!!");
        }
        array[rear]=element;
        rear=(rear+1)%array.length;
    }

2.出队:

  •      类似于入队,只允许在对头的位置移除元素,出队元素的后一个元素将会成为新的对头;
    
  •      当一个队列经过反复的入队和出队操作,还剩下2个元素,这时又有新元素入队时,在数组不扩容的
    
  •      情况下,将队尾指针重新指向数组的首位,实现循环队列的数据结构。
    
public int deQueue() throws Exception{
        if(front==rear){
            throw new Exception("队满!!!");
        }
        int deElement=array[front];
        front=(front+1)%array.length;
        return deElement;
    }

3.判断队满的情况:文章来源地址https://www.toymoban.com/news/detail-708695.html

  •      当(队尾下标+1)%数组长度=队头下标时,队满;
    
  •      队尾指针指向的位置永远空出一位,所以队列最大容量比数组长度小1。
    

完整代码

点击查看代码
package Queue;

public class MyQueue {
    //定义数组
    private int[] array;
    //对头指针
    private int front;
    //队尾指针
    private int rear;

    //定义队列的构造方法(类似数组)
    public MyQueue(int capacity){
        this.array=new int[capacity];
    }

    //入队操作(element:入队元素)
    public void enQueue(int element) throws Exception{
        if((rear+1)%array.length==front){
            throw new Exception("队满!!!");
        }
        array[rear]=element;
        rear=(rear+1)%array.length;
    }

    //出队操作
    public int deQueue() throws Exception{
        if(front==rear){
            throw new Exception("队满!!!");
        }
        int deElement=array[front];
        front=(front+1)%array.length;
        return deElement;
    }

    //输出队列
    public void output(){
        for(int i=front;i!=rear;i=(i+1)%array.length){
            System.out.print(array[i]+" ");
        }
    }

    public static void main(String[] args) throws Exception{
        MyQueue myQueue=new MyQueue(6);
        myQueue.enQueue(1);
        myQueue.enQueue(2);
        myQueue.enQueue(3);
        myQueue.enQueue(4);
        myQueue.enQueue(5);
        myQueue.deQueue();
        myQueue.deQueue();
        myQueue.enQueue(6);
        myQueue.enQueue(7);
        myQueue.output();
    }
}

到了这里,关于Java有关队列的基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】栈和队列(栈的基本操作和基础知识)

    🌈个人主页: 秦jh__ https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343 🔥 系列专栏: 《数据结构》 https://blog.csdn.net/qinjh_/category_12536791.html?spm=1001.2014.3001.5482 目录  前言 栈 栈的概念和结构 栈的实现 ​编辑 数组栈的实现 总的声明 初始化  插入 删除 取栈顶元素 销毁 判断是否为空

    2024年02月03日
    浏览(54)
  • (图解)循环队列的三种判断队空、队满操作(附带源码和插入删除操作等一些基本操作)

    目录   一、普通的顺序存储队列 二、循环队列 (1)少用一个元素空间 i、初始化队列操作: iii、入队操作: iv、出队操作: (2)设置flag标志 i、初始化队列操作: ii、判断队空操作: iii、入队操作: iv、出队操作: (3)设置length存储队列元素的个数 i、初始化队列操作

    2024年01月17日
    浏览(53)
  • 【C++】【数据结构】循环队列的基本操作(初始化、入队、出队、取队头元素、遍历输出队列、求队列长度)顺序队列的算法实现【附全代码】

    使用c++完成数据结构循环队列的基本操作,包括(初始化、入队、出队、取队头元素、遍历输出队列、求队列长度等),可直接编译运行。 队列 又称为 “先进先出” (FIFO)线性表。限定插入操作只能在队尾进行,而删除操作只能在队首进行。 循环队列 ——采用 顺序存储结构

    2023年04月16日
    浏览(53)
  • 数据结构(C语言实现)——栈和队列的介绍及基本操作的实现(动态顺序栈+链队)

    今天我们来学习另外两个线性结构——栈和队列,栈和队列是操作受限的线性表,因此,可称为限定性的数据结构。 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守

    2023年04月19日
    浏览(44)
  • Java操作mongodb的基本操作

    目录 MongoDB的基本操作 新增 方式一: 方式二: 删除:  带条件的删除 修改 修改条件 修改并添加  多条件修改: 查询 普通查询 条件查询 ​编辑 多条件查询 模糊查询: 查询除来的结果有两种的显示方式: MongoDB中的文档本质上是一种类似JSON的BSON格式的数据。 BSON是一种类

    2023年04月09日
    浏览(52)
  • java 操作es 的基本操作

    创建索引 创建索引别名 索引的相关设置 查询索引数据 bulk 导入数据 持续更新中~ pom的坐标

    2024年01月20日
    浏览(43)
  • 单链表基本操作(java)

    节点类是链表类的内部类

    2024年02月16日
    浏览(38)
  • Java中列表的基本操作

    列表有下标,是一个可变容器,元素可以重复,Java中list包含arraylist和linklist,通常使用的是arraylist,查询速度更快,导入的包是java.util.ArrayList。 定义列表时,如果指定列表接受的数据类型为8大数据类型,需要使用对应数据类型的包装类;列表是一个可变容器,定义后默认元

    2024年02月01日
    浏览(38)
  • Java 操作RestHighLevelClient基本使用

    在使用 RestHighLevelClient的过程中发现,它已经标记为过时了。 在 Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端 RestHighLevelClient标记为弃用状态。 同时推出了全新的 Java API客户端 Elasticsearch Java API Client,该客户端也将在 Elasticsearch8.0及以后版本中成为官方推荐使用的

    2024年02月11日
    浏览(43)
  • ElasticSearch Java API 基本操作

    ElasticSearch Java API是ES官方在8.x版本推出的新java api,也可以适用于7.17.x版本的es。 本文主要参考了相关博文,自己手动编写了下相关操作代码,包括更新mappings等操作的java代码。 代码示例已上传github。 elasticsearch 版本: 7.17.9 ,修改 /elasticsearch-7.17.9/config/elasticsearch.yml ,新增

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包