/**
* 队列
* Create by Administrator
* 2018/6/11 0011
* 下午 3:27
**/
public class Queue { private int maxSize; private long[] queArray; private int front; //前 private int rear; //后 private int nItems; public Queue(int maxSize) {
this.maxSize = maxSize;
this.queArray = new long[maxSize];
this.front = 0;
this.rear = -1;
this.nItems = 0;
} /**
* 添加
* @param j
*/
public void insert(long j){
if(isFull()){
System.out.println("队列满了");
}else {
if(rear == maxSize-1){
rear = -1;
}
queArray[++rear] = j;
nItems++;
}
} /**
* 删除
* @return
*/
public long remove(){
if(isEmpty()){
return -1;
}else{
long temp = queArray[front++];
if(front == maxSize){
front = 0;
}
nItems--;
return temp;
}
} /**
* 查看队列第一个
* @return
*/
public long peekFront(){
return queArray[front];
} /**
* 判断队列是否为空
* @return
*/
public boolean isEmpty(){
return (nItems == 0);
} /**
* 判断队列是否满了
* @return
*/
public boolean isFull(){
return (nItems == maxSize);
} /**
* 队列大小
* @return
*/
public int size(){
return nItems;
} public static void main(String[] args) {
Queue queue = new Queue(5); queue.insert(10);
queue.insert(20);
queue.insert(30);
queue.insert(40); queue.remove();
queue.remove();
queue.remove(); queue.insert(50);
queue.insert(60);
queue.insert(70);
queue.insert(80);
queue.insert(90);
queue.insert(95); System.out.println(queue.size()); while (!queue.isEmpty()){
long n = queue.remove();
System.out.print(n +" ");
}
System.out.println(""); System.out.println(queue.size()); } }

  

/**
* 优先级队列
* Create by Administrator
* 2018/6/11 0011
* 下午 4:15
**/
public class PriorityQ { private int maxSize; private long[] queArray; private int nItem; public PriorityQ(int maxSize) {
this.maxSize = maxSize;
this.queArray = new long[maxSize];
this.nItem = 0;
} public void inset(int item){
int j;
if(nItem == 0){
queArray[nItem++] = item;
}else{
for(j = nItem-1; j >= 0;j--){
if(item > queArray[j]){
queArray[j+1] = queArray[j];
}else{
break;
}
}
queArray[j+1] = item;
nItem++;
}
} public long remve(){
return queArray[--nItem];
} public long meeMin(){
return queArray[nItem-1];
}
public boolean isEmpty(){
return (nItem == 0);
}
public boolean isFull(){
return (nItem == maxSize);
} public static void main(String[] args) {
PriorityQ p = new PriorityQ(5);
p.inset(30);
p.inset(50);
p.inset(10);
p.inset(20);
p.inset(30); while (!p.isEmpty()){
long item= p.remve();
System.out.print(item + " ");
}
System.out.println("");
}
}

  

java学习之—队列的更多相关文章

  1. java学习-消息队列rabbitmq的组成

    rabbitMQ组成部分 rabbitmq有以下组成部分,分别为: 1. Server(broker)接受客户端连接,实现AMQP消息队列和路由功能的进程 2.虚拟主机virtual host虚拟主机 ...

  2. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. 20145304 第五周Java学习报告

    20145304<Java程序设计>第5周学习总结 教材学习内容总结 1.使用try.catch: 如果使用了try.catch,编译时会尝试执行try区块中的程序代码,如果有错误,执行流 ...

  5. 20145330第五周《Java学习笔记》

    20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...

  6. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  7. Java 学习路线以及各阶段学习书籍,博文,视频的分享

    感谢: 感谢每一个打开这篇文章的人,听我在这里瞎扯!至于我为什么会有闲情写这篇文章呢?因为我每天想的是为什么要给我这样的需求,背后的人性是什么,我能再做些什么能让他更好.久而久之,我也稍微有了些自己的 ...

  8. Java 学习文章汇总

    目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...

  9. Java多线程 阻塞队列和并发集合

    转载:大关的博客 Java多线程 阻塞队列和并发集合 本章主要探讨在多线程程序中与集合相关的内容.在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃.Java为多线程专门提供了特有的 ...

随机推荐

  1. UVA1442-Cav(扫描法)

    Problem UVA1442-Cav Accept: 185  Submit: 679Time Limit: 3000 mSec Problem Description Input The inpu ...

  2. [ZJOI2012]灾难

    嘟嘟嘟 偶尔翻到的一道题. 50分暴力很好想,对于每一个点进行一次拓扑排序,然后每一次别memset,只清空走过的点,能拿到70分. 正解好像也挺好想,是一个叫"灭绝树"的东西. ...

  3. springboot RestTemplate请求

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code   1.定义 RestTemplateConfig 配置类 @Configuratio ...

  4. mysql备份命令

    mysql备份命令如下: 备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/tes ...

  5. Codeforces Round #545 (Div. 1) Solution

    人生第一场Div. 1 结果因为想D想太久不晓得Floyd判环法.C不会拆点.E想了个奇奇怪怪的set+堆+一堆乱七八糟的标记的贼难写的做法滚粗了qwq靠手速上分qwqqq A. Skyscraper ...

  6. C# 生成编号(防并发)

    今天抽了点时间,写了一个通用的生成编号的程序! 我的生成规则为年月日+两位编号,即:yyyyMMdd+两位编号,譬如:2018101001 / 2018101002 / 2018101003 首先,一 ...

  7. 2018年12月份GitHub上最热门的Java开源项目

    来自:开源最前线(ID:OpenSourceTop) 链接:https://www.itcodemonkey.com/article/12747.html 又到了公布 GitHub 上热门项目的时候啦 ...

  8. ASP.NET Core 与支付宝开发文档

    一.目录 ASP.NET Core 2.0 使用支付宝PC网站支付 ASP.NET Core 2.0 支付宝当面付之扫码支付 常见使用问题解答 已有多个公司数个项目用本组件并上线,稳定使用. 二.项目 ...

  9. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 发送通知功能改进改进

    公司有几万个用户,接近10万人,有一些紧急的通知,消息提醒,可以发个及时通知工具,这样可以快速把一些信息通知给大家,让大家快速收到信息,及时通知到系统的每个人. 自动提示信息现实状态,会在客户端自动谈 ...

  10. mysqldump 和mysqlbinlog

    一.mysqldump 1.备份test库 #mysqldump -uroot -p' test >test.sql 2.备份 -B参数 ' -B test >test_B.sql --B ...