美文网首页
用数组实现循环队列

用数组实现循环队列

作者: 漫行者_ | 来源:发表于2021-08-09 00:38 被阅读0次

循环队列这块思考的几十分钟才彻底想清楚需要注意的地方。


image.png
image.png
  • rear指针的位置是不存数值的。front只是表示末端,与该点有没有存储数值没有关系。完全根据rear指针来。
  • 因此产生队列为空和满员的时候都是front==rear。因此中间隔一个才实现判断。
  • 在这个题中经常要用到下一个位置的坐标是多少,因此最好写一个next的函数
  • 也就是说next(rear) == front的时候,表示存满。
    rear ==front的时候表示没有数值。
    代码如下:
/**
 * @author niejian
 * @date 2021/8/29 16:41
 */
public class Queue<T> {
    private Object[] array;
    private int front;
    private int rear;

    public Queue(int arrayNum) {
        array = new Object[arrayNum];
    }

    public boolean insert(T object) {
        if(next(front) == rear) {
            return false;
        }
        array[front++] = object;
        return true;
    }

    public int getSize() {
        return front - rear;
    }

    private int next(int front) {
        return (front+1)%array.length;
    }

    public static void main(String[] args) {
        Queue<Integer> queue = new Queue<>(3);
        System.out.println(queue.insert(1));
        System.out.println(queue.insert(2));
        System.out.println(queue.insert(3));
    }
}

相关文章

  • 用数组实现循环队列

    用数组实现循环队列!

  • 有关“队列”的总结

    队列 定义 分类 链式队列 (用链表实现) 静态队列 (用数组实现)图静态队列通常都必须是循环队列循环队列的讲解:...

  • 1.数组队列

    数组实现单队列 数组实现循环队列

  • 数组队列实现以及其出队问题

    基于动态数组的实现 用数组实现的队列,出队的时间复杂度是O(n),我们用循环队列解决

  • C队列(数组循环队列、链表普通队列)

    一、数组循环队列 简述一下思想,该循环队列用数组实现,数组大小初始化为5(MaxSize),有头索引(front)...

  • Java基础面试题

    如何用数组实现队列? 用数组实现队列时要注意 溢出 现象,这时我们可以采用循环数组的方式来解决,即将数组收尾相接。...

  • 队列

    一种可以实现“先进先出”的存储结构。 分类: 链式队列:用链表实现; 静态队列:用数组实现,通常都是循环队列。 循...

  • Java队列

    阻塞队列 ArrayBlockingQueue 一个用循环数组实现的有界阻塞队列。必须指定队列长度,按 FIFO(...

  • 循环队列的Java实现

    用数组实现循环队列,循环队列的难点在于头节点和尾节点的判断,判队列已经满了是通过(tail + 1)% n == ...

  • 用数组实现循环队列

    循环队列这块思考的几十分钟才彻底想清楚需要注意的地方。 rear指针的位置是不存数值的。front只是表示末端,与...

网友评论

      本文标题:用数组实现循环队列

      本文链接:https://www.haomeiwen.com/subject/dtvavltx.html