美文网首页
大话数据结构—循环队列(七)

大话数据结构—循环队列(七)

作者: 浅浅星空 | 来源:发表于2019-02-20 10:35 被阅读3次

1.循环队列

a.队列满的条件是 (rear+l) % QueueSlze==front
b.通用的计算队列长度公式为:(rear- front + QueueSize) %QueueSize

public class CircleQueue {

    private static final int MAX_SIZE = 10;
    private Object[] data = new Object[MAX_SIZE];
    private int front;
    private int rear;

    public CircleQueue() {
        front = rear = 0;
    }

    public int size() {
        return (MAX_SIZE - front + rear) % MAX_SIZE;
    }

    public void add(Object element) {
        if ((rear + 1) % MAX_SIZE == front) {
            throw new RuntimeException("队列满");
        }
        data[rear] = element;
        rear = (rear + 1) % MAX_SIZE;
    }

    public Object poll() {
        if (front == rear) {
            throw new RuntimeException("空队列");
        }
        Object element = data[front];
        front = (front + 1) % MAX_SIZE;
        return element;
    }
}

相关文章

  • 大话数据结构—循环队列(七)

    1.循环队列 a.队列满的条件是 (rear+l) % QueueSlze==frontb.通用的计算队列长度公式...

  • 数据结构-队列(Queue)-FIFO

    数据结构-队列(Queue)-FIFO 队列的接口设计 双端队列-Deque 循环队列-CircleQueue 双...

  • LeetCode 622. 设计循环队列

    622. 设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原...

  • leetcode622.设计循环队列

    题目链接 题解: 在我的文章数据结构之——队列与循环队列 中,有关于循环队列的设计,包括本题没有考虑过的resiz...

  • java.util.ArrayDeque源码解析

    准备知识 因为ArrayDeque使用了循环队列,所以首先要了解循环队列数据结构的原理。https://www.j...

  • 贪心、分治、动态规划算法

    书籍:大话数据结构、剑指offer(必看 必看 必看)、编程之美、编程珠玑 10个数据结构:数组、链表、栈、队列、...

  • 大话数据结构 - 队列

    代码GitHub地址 队列 队列和栈一样是特殊的线性表。区别只是它能尾进头出而已 学习队列需要清楚的认识到fron...

  • 常见的数据结构

    常见的数据结构有: 数组 链表单链表、双向链表、循环链表、双向循环链表、静态链表 栈顺序栈、链式栈 队列普通队列、...

  • C语言数据结构——线性表链式循环队列(链表实现方式)

    队列相关知识及操作请参看上一章 C语言数据结构——线性表循环队列(动态数组实现方式) 一、链式队列 链式队列 : ...

  • 622 设计循环队列

    题目描述: 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被...

网友评论

      本文标题:大话数据结构—循环队列(七)

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