/**
* 队列
* 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. setjmp/longjmp

    1.setjmp/longjmp属于传统的错误处理 2.setjmp/longjmp是对goto语句的补充,goto仅仅能实现局部跳转.setjmp/longjmp能够实现全局跳转 3.setjmp/ ...

  2. centos7下如何隐藏nginx的版本号

    我们在访问nginx的时候会暴露nginx的版本号,如何将这些版本号隐藏呢? 其实隐藏版本号非常简单 在nginx的配置文件中添加一个server——tokens  off:参数就可以了,下面进行操作 ...

  3. js 文件引用传递参数

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code (function() {var hm = document.createElement(&q ...

  4. 1、原生jdbc连接oracle数据库简单介绍

    一.jbdc的常用API1.Connection:数据库的链接对象2.statement:数据库sql执行对象3.preparedStatment:sql的预编译处理对象,是statement子接口4 ...

  5. 用 virtualenv 创建隔离的 Python 运行环境

    以 Ubuntu 14.04 系统为例,安装的 Python 和 Python3 分别是 2.7.6 和 3.4.3, 但有些项目,有些模块要求特定的 Python 版本.而当前系统默认的 Pytho ...

  6. ABAQUS复合材料

    转自)http://meiniyuan.blog.sohu.com/134141022.html 有很多帖子相当的不错,介绍了复合材料研究的基本的原理和方法,发现好的帖子再更新:0 c3 n0 ~+ ...

  7. WebApi测试工具:SAEA.RESTED

    写好一个Api接口不知道怎么测试?试试SAEA.RESTED吧——无需任何代码.不污染主项目.快速上手.不依赖IIS,可供多人共享使用!下面就跟着本文查看如何使用吧:1.下载安装:https://gi ...

  8. mybatis百科-结果集映射类ResultMap

    目录 1 成员变量 2 构造函数 3 其他函数 3.1 setter 和 getter 函数 4 静态内部类 4.1 成员变量 4.2 构造函数 4.3 建造者相关的函数 4.4 获取配置的构造方法参 ...

  9. Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  10. .net core jwt

    https://www.cnblogs.com/JacZhu/p/6837676.html