java学习之—队列
/**
* 队列
* 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学习之—队列的更多相关文章
- java学习-消息队列rabbitmq的组成
rabbitMQ组成部分 rabbitmq有以下组成部分,分别为: 1. Server(broker)接受客户端连接,实现AMQP消息队列和路由功能的进程 2.虚拟主机virtual host虚拟主机 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145304 第五周Java学习报告
20145304<Java程序设计>第5周学习总结 教材学习内容总结 1.使用try.catch: 如果使用了try.catch,编译时会尝试执行try区块中的程序代码,如果有错误,执行流 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- Java 学习路线以及各阶段学习书籍,博文,视频的分享
感谢: 感谢每一个打开这篇文章的人,听我在这里瞎扯!至于我为什么会有闲情写这篇文章呢?因为我每天想的是为什么要给我这样的需求,背后的人性是什么,我能再做些什么能让他更好.久而久之,我也稍微有了些自己的 ...
- Java 学习文章汇总
目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...
- Java多线程 阻塞队列和并发集合
转载:大关的博客 Java多线程 阻塞队列和并发集合 本章主要探讨在多线程程序中与集合相关的内容.在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃.Java为多线程专门提供了特有的 ...
随机推荐
- java实现随机四则运算
使用JAVA编程语言,独立完成一个包含3到5个数字的四则运算练习,软件基本功能要求如下: 程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个 ...
- 编写第一个 Shell 脚本
什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Sh ...
- robotframework日志中文乱码,编译提示‘utf-8’ codecxxxx。
1.需要设置robotframework的语系 2.设置完后,需要重启robotframework才生效.它比较特别,什么改变都要重启才生效
- Spring Boot设置上传文件大小
可以使用配置文件配置,也可以使用Bean在启动类中配置 配置文件为application.properties格式: spring.http.multipart.maxFileSize=10Mb sp ...
- 调试器GDB的基本使用方法
GDB调试的三种方式: 1. 目标板直接使用GDB进行调试. 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端. 3. 目标板使用ulimit -c unlimited ...
- LDAP1-安装部署LDAP服务
基于Linux部署openldap服务 参考文档: https://blog.csdn.net/computer1024/article/details/78172785 参考文档: https:/ ...
- JVM深度解析
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java语言的 ...
- Nginx+keepalived高可用配置实战(内附彩蛋)
1.整体架构图如下 2.环境准备 今天所配置的是keepalived+nginx 的负载均衡 下载keepalived软件 [root@LB01 tools]# wget http://www.kee ...
- 深入浅出Java反射
反射,它就像是一种魔法,引入运行时自省能力,赋予了 Java 语言令人意外的活力,通过运行时操作元数据或对象,Java 可以灵活地操作运行时才能确定的信息 这里笔者就深入浅出总结下Java反射,若有不 ...
- WPF仿网易云音乐系列(序)
1.简介 由于之前做了一个播放器,苦于不懂界面设计,只得去借鉴借鉴一些成功的作品,网易云音乐就甚合朕心,哈哈,最后做出来的效果如下: 本系列文章就来和大家讨论以下,如何用WPF去仿制一个网易云音乐来: ...