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为多线程专门提供了特有的 ...
随机推荐
- 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题
实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...
- [SDOI2008]递归数列
嘟嘟嘟 裸的矩阵快速幂,构造一个\((k + 1) * (k + 1)\)的矩阵,把sum[n]也放到矩阵里面就行了. #include<cstdio> #include<iostr ...
- 【Vuex】mapGetters 辅助函数
mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性: import { mapGetters } from 'vuex' export default { // ...
- java 定时任务多线程处理
@Configuration@EnableSchedulingpublic class ScheduleConfig implements SchedulingConfigurer, AsyncCon ...
- 2018-2019-2 20175310 实验二《Java面向对象程序设计》实验报告
2018-2019-2 20175310 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 (一).面向对象程序设计-1 参考 http://www.cnblogs.com/ ...
- 20175330 实验一 《Java开发环境的熟悉》实验报告
一.实验内容及步骤 (一)使用JDk编译.运行简单的Java程序 (一)使用JDk编译.运行简单的Java程序 输入cd Code命令进入Code目录 输入mkdir 20175308建立实验目录 l ...
- HTML+CSS之盒子模型
一.元素分类 CSS中html的标签元素大体分为三种类型 1.块状元素 @特点: #每个块级元素都从新的一行开始,并且其后的元素也另起一行(一个块级元素独占一行) #元素的高度.宽度.行高以及顶和底边 ...
- Item 26: 避免对universal引用进行重载
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果你需要写一个以名字作为参数,并记录下当前日期和 ...
- duxing201606的原味鸡树
链接 [http://murphyc.fun/problem/4011] 题意 描述 众所周知,duxing哥非常喜欢原味鸡.众所周知,原味鸡是长在原味鸡树上的. duxing哥因为是水产巨子,所以就 ...
- XML 与 JSON大PK
导读 XML 和 JSON 是现今互联网中最常用的两种数据交换格式.XML 格式由 W3C 于 1996 年提出.JSON 格式由 Douglas Crockford 于 2002 年提出.虽然这两种 ...