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为多线程专门提供了特有的 ...
随机推荐
- centos7下安装docker(15.4跨主机网络-flannel)
flannel是CoreOS开发的容器网络解决方案,flannel为每一个host分配一个subnet,容器从这些subnet中分配IP,这些IP可以在host之间路由,容器无需NAT和port ma ...
- UVA120-Stacks of Flapjacks(思维)
Problem UVA120-Stacks of Flapjacks Accept: 9232 Submit: 38455Time Limit: 10000 mSec Problem Descrip ...
- VMware15安装MAC(MAC OS 10.13)(OS X 10.14)原版可升级最新可解锁macOS Unlocker3.0(OS X 10.13)
目录树 1.1.2安装环境: 1.1.3所需资源: 1.1.4 Unlocker 3.0解锁 1.1.5 配置环境 1.1.6开始安装 1.1.7开启虚拟机进入MAC安装界面 1.1.8 macO ...
- OmniPlan 3 Pro密钥
密钥用户名都是youliyuan.OmniPlan 3:HOMJ-QOJH-OIBN-TNIH-HWUN-TEEH-WUNNKWO-HVKB-JAZE-UIHH-XAVY-BEEX-AVYBCRW-M ...
- 理解Shadow DOM(一)
1. 什么是Shadow DOM? Shadow DOM 如果按照英文翻译的话可以理解为 影子DOM, 何为影子DOM呢?可以理解为一般情况下使用肉眼看不到的DOM结构,那如果一般情况下看不到的话,那 ...
- Java多线程(十)——线程优先级和守护线程
一.线程优先级的介绍 java 中的线程优先级的范围是1-10,默认的优先级是5.“高优先级线程”会优先于“低优先级线程”执行. java 中有两种线程:用户线程和守护线程.可以通过isDaemon( ...
- 最新版XCoder 的使用方法
1.项目中,新建一个类库.名字随意,我取名:XCoder 2.右键 > 管理nuget程序包:搜索 XCode 并安装 3.在项目中新建:data.project.xml 的xml文件,并写入数 ...
- mariadb(第一章)
数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来 ...
- 二十:让行内元素在div中垂直居中
(1)使用display:table-cell配合vertical-align:center(淘宝也是这样用的) <div class="method4"> <s ...
- Accordion CodeForces - 1101B (实现)
An accordion is a string (yes, in the real world accordions are musical instruments, but let's forge ...