java学习经验总结------循环队列的实现(数组)


package datastructure;/*数组实现循环队列
队列first in first out*/
public class CircularQueue { public static void main(String[] args) {
// TODO 自动生成的方法存根
Circular_Queue cq = new Circular_Queue(3);
cq.add("1");
cq.add("2");
cq.add("3");
cq.delete();
cq.delete();
cq.print();
} }
class Circular_Queue{
private int front;
private int rear;
private int maxsize;
private int count=0;
private String a[];
public Circular_Queue(int max) {
a=new String[max];
this.front=0;
this.rear=0;
this.maxsize=max;
}
public void add(String value){//添加元素 a[(this.rear+this.maxsize+1)%(this.maxsize+1)]=value;
this.rear=(++this.rear+this.maxsize+1)%(this.maxsize+1);
this.count++; }
public int Count() {//加入元素的个数
return this.count;
}
public void delete() {
a[(this.front+this.maxsize+1)%(this.maxsize+1)]=null;
this.front=(++this.front+this.maxsize+1)%(this.maxsize+1);
this.count--;
if(front==rear)
System.out.println("队列已空");
}
public void print() {//打印输出列表
int i=0;
while(i<count) {
System.out.println(a[front+i]);
i++;
}
if((this.rear+this.maxsize+2)%(this.maxsize+1)==this.front)
System.out.println("队列已满!!!");
}
}

java数据结构---循环队列的更多相关文章

  1. Java数据结构——循环队列

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

  2. C语言数据结构-循环队列的实现-初始化、销毁、清空、长度、队列头元素、插入、删除、显示操作

    1.数据结构-循环队列的实现-C语言 #define MAXSIZE 100 //循环队列的存储结构 typedef struct { int* base; //基地址 int _front; //头 ...

  3. Java数据结构之队列的实现以及队列的应用之----简单生产者消费者应用

    Java数据结构之---Queue队列 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在 ...

  4. Java实现循环队列

    一.分析 队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素.允许插入的一端称为队尾,允许删除的一端称为队头. 循环队列是一种以顺序存储结构表示的队列,为了解决“假溢出”问题而 ...

  5. java算法--循环队列

    循环队列 我们再用队列得时候不知道发没发现这样一个问题. 这是一个只有三个位置得队列,在进行三次加入(addqueue)操作和三次取出(get)操作之后再进行加入操作时候的样子.明显可以看到,队列已经 ...

  6. java数据结构之队列

    队列概述队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列.– ...

  7. 数据结构-循环队列(Python实现)

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

  8. 图解Java数据结构之队列

    本篇文章,将对队列进行一个深入的解析. 使用场景 队列在日常生活中十分常见,例如:银行排队办理业务.食堂排队打饭等等,这些都是队列的应用.那么队列有什么特点呢? 我们知道排队的原则就是先来后到,排在前 ...

  9. Java数据结构——优先级队列

    //================================================= // File Name : PriorityQueue_demo //------------ ...

随机推荐

  1. CSS中的定位体系

    一.概述     1.什么是定位体系     视觉格式化模型规定,定位体系共有三种             a.常规流(normal flow)             b.浮动(float)     ...

  2. 谈谈 InnoDB引擎中的一些索引策略

    如果我们在工作能够更好的利用好索引,那将会极大的提升数据库的性能. 覆盖索引 覆盖索引是指在普通索引树中可以得到查询的结果,不需要在回到主键索引树中再次搜索 建立如下这张表来演示覆盖索引: creat ...

  3. [校内训练19_09_03]c Huge Counting

    题意 有一个定义在 k 维非负整点上的函数:$f(x_1,x_2,...,x_k):N_{0}^{k}->\{0,1\}$ ,定义方法如下: 若存在$j∈[1,k],x_j=0$,则$f(x_1 ...

  4. ffplay的使用

    https://www.cnblogs.com/renhui/p/8458802.html

  5. GitHub Pages 与 Gitee Pages 上的 Jekyll

    GitHub 与 Gitee 提供的 Pages 服务中,均内嵌了 Jekyll 支持(Gitee 还提供了 Hugo 与 Hexo 支持).所谓「支持」,即指这些生成工具挂在云端:你只需要提供原始代 ...

  6. 理解Java虚拟机中的栈、堆、堆栈

    JAVA的JVM的内存可分为3个区:堆(heap).栈(stack)和方法区(method) 栈区: 每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不 ...

  7. 请注意安全!你的mongodb已经被黑了!互联网安全生产大过天!

    你所不知道的入侵,你的服务器安全吗?你的数据库安全吗? 讲真,也许是我以前一直从事内网应用开发吧,我从来没有想过在互联网上,有那么多扫描器. 10月份的时候,受人委托我做了一个简单的抢单插件,里面有用 ...

  8. 使用Intellij编写Spring Hello World

    编写基于Intellij2016.3与Java SDK1.8 下载Spring最新jar包: http://repo.spring.io/release/org/springframework/spr ...

  9. WTL Hello World

    构建最简单的WTL Hello World程序,基于:WTL91_5321_Final + VS2013 + WIN7 添加->新建项目 为了简单起见,我们删除一些button和对应的处理代码( ...

  10. sizeof('a')

    #include <iostream> using namespace std; int main(void) { cout << sizeof('a') << e ...