zoukankan      html  css  js  c++  java
  • 九 、循环队列的java实现

    原理:

    接上一回队列的问题,上节队列弹出之后再插入会报出数组越界。所以这节改成循环队列。

    所谓循环队列就是删除到队尾后重新指向队头,插入数据满了之后重新指向队头,实现一个循环。

    运行结果图:

    可以看出弹出全部的数据后,是可以重新插入数据的。而且重新插入的数据是可以重新弹出的。因此这个循环队列是有效的!!!

    下面甩出源代码,其实也就是在上节队列的基础上对于插入数据和删除数据进行一个判断。

    public class MycycleQueue {
    private int[] array; //底层数组
    private int elements; //有效数据个数
    private int font ; //队头
    private int end ; //队尾

    public MycycleQueue() {
    // TODO Auto-generated constructor stub
    array = new int[5];
    elements =0;
    font = 0;
    end =0;
    }
    public MycycleQueue(int Maxsize) //重载构造
    {
    array = new int[Maxsize];
    elements =0;
    font = 0;
    end =0;
    }
    public void insert(int value) //插入数据
    {
    if(end == array.length)
    end = 0;
    array[end++] =value;
    elements++;

    }

    public int remove() //删除数据
    {
    if(font == array.length)
    font =0;
    elements--;
    return array[font++];
    }
    public void peek() //查看队头数据
    {
    System.out.println(array[font]);
    }
    public boolean IsEmpty() //判断是否为空
    {
    return elements ==0;
    }
    public boolean IsFull() //判断是否为满
    {
    return elements == array.length;
    }
    }

  • 相关阅读:
    计算一个月有多少天
    模拟迭代器next方法
    Promise实现
    控制台命令
    Linux下通过ssh上传下载文件
    简单使用template-web.js
    安装echo框架
    gin框架博客实战教程2019web页面开发go语言实战博客开发
    TP5使用phpoffice phpexcel包操作excel(导出)
    两分钟让你明白Go中如何继承
  • 原文地址:https://www.cnblogs.com/fyz666/p/8458227.html
Copyright © 2011-2022 走看看