循环队列

package com.cn.jichu.day09;public class LoopQueue<E> {/*** 数组*/private E[] data;/*** 头指针,尾指针*/private int head,tail;/*** 当前数组大小*/private int size;public LoopQueue(int size) {data = (E[]) new Object[size];this.size = size;}public LoopQueue() {this(10);}/*** 入队* @param e*/public void enqueue(E e){//当尾指针的下一个位置 和头指针重合时,证明当前队列已经满了(当前会浪费一个位置)if((tail + 1) % size == head){throw new IllegalArgumentException("当前队列满了,不能再加入新的元素了");}//当前尾指针指向的位置填入新的元素data[tail] = e;//将指针移动到下一个空位置tail = (tail + 1) % size;}/*** 出队* @return*/public E dequeue(){//当头指针和尾指针重合时,说明队列中没有可取元素if(head == tail){throw new IllegalArgumentException("当前队列没有元素了");}E e = data[head];data[head] = null;head = (head + 1) % size;return e;}@Overridepublic String toString(){StringBuilder ret = new StringBuilder();ret.append("queue  [");for(int i=0;i<data.length;i++){ret.append(data[i] + " ");}ret.append(" ] ");return ret.toString();}}

转载于:https://www.cnblogs.com/anny0404/p/10669349.html

[数据结构]-循环队列相关推荐

  1. python环形队列_Python 实现数据结构-循环队列的操作方法

    今天我们来到了循环队列这一节,之前的文章中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法. 但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价是不一样的,删 ...

  2. 循环队列的java结构_Java数据结构——循环队列

    普通顺序队列存在的问题 在普通顺序队列中,入队的操作就是先将尾指针rear右移一个单位,然后将元素值赋值给rear单位.出队时,则是头指针front后移一个单位.像这样进行了一定数量的入队和出队操作后 ...

  3. 数据结构--循环队列

    循环队列 图片讲解

  4. 数据结构循环队列C++实现

    1.队列的概念 队列只允许在表的一端插入,另一端删除.允许插入的一端叫做队尾,允许删除的一端叫做对首.队列的特性叫"先进先出".和栈一样,队列的存储形式也有两种,基于数组的存储表示 ...

  5. 数据结构-循环队列(C语言代码)

    循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用.在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可 ...

  6. Python写数据结构:循环队列

    #!/usr/bin/python3.5 #_*_coding:utf-8_*_class Queue():def __init__(self,capacity):self.queue = [None ...

  7. c语言 数据结构 循环队列

    #include<stdio.h> #include<stdlib.h> #define QueueSize 100 typedef char DataType; typede ...

  8. 数据结构之——队列与循环队列

    数据结构学习之--队列与循环队列 什么是队列(Queue) 队列基于动态数组的实现及时间复杂度分析 优化队列 循环队列(LoopQueue) 什么是队列(Queue) 队列(Queue)同栈(stac ...

  9. 【数据结构】队列-顺序队列、循环队列、链队、双端队列

    定义 队列是只允许在一端进行插入,而在另一端进行删除的线性表. 队头(Front):允许删除的一端,又称为队首. 队尾(Rear): 允许插入的一端. 先进入队列的元素必然先离开队列,即先进先出(Fi ...

最新文章

  1. iptables 入门
  2. TCP的拥塞控制(详解)
  3. 浅谈malloc,calloc,realloc函数之间的区别
  4. 在SQL 语句批量替换数据库字符串的方法
  5. 领动机器人教育_【领动知识科普】各阶段孩子该如何选择编程?乐高、机器人、编程间又有什么关系?...
  6. 1044 火星数字 (20 分)(c++)
  7. oracle 10g 分区管理,Oracle 10g分区表的自动维护
  8. t4b代码生成_用T4模板实现简单的代码生成器
  9. 2018最新java基础学习路线
  10. gcn语义分割_语义分割该如何走下去?
  11. 吴恩达机器学习 6.神经网络学习
  12. Google 再被罚!
  13. node中的异步API
  14. [转]bootstrapValidator.js 做表单验证
  15. 论文参考文献格式写法
  16. Facebook承诺为普通市民提供1500套住房
  17. AutoSAR系列讲解(实践篇)10.2-EcuM的上下电流程
  18. 使用SpEL表达式来获取SpringData Jpa在更新数据时传递的对象参数的属性
  19. [BZOJ4537][Hnoi2016]最小公倍数(并查集+分块)
  20. UI库你应该知道的基础(超实用)

热门文章

  1. #pragma pack (n) 惹的祸
  2. 解决IIS数据库连接出错方法
  3. 删除顽固文件的执行代码,删除rhsa属性文件,删除服务器中黑客留下...
  4. 新装WIN7 UPDATE 无法更新
  5. 说说Java 7中的模块系统基本概念
  6. 忆起在兄弟连的那些日子!
  7. 几个与IP地址类型有关的术语
  8. python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包
  9. Tokenisation word segmentation sentence segmentation
  10. Python爬虫_正则表达式小例子