队列-java代码
public class QueueDemo {
private int maxSize;
private long[] queueArray;
// 队列的头,实际是数组的尾
private int header;
// 队列的尾,实际是数组的头
private int footer;
private int nElems;
public QueueDemo(int size){
maxSize = size;
queueArray = new long[maxSize];
header = 0;
footer = -1;
nElems = 0;
}
// 插入队列,从队尾插入
public void insert(long element){
if(footer == (maxSize - 1)){
footer = -1;
}
queueArray[++footer] = element;
nElems++;
}
// 出队列,即取出数组尾
public long remove(){
long temp = queueArray[header];
queueArray[header] = 0;
if(++header == maxSize){
header = 0;
}
nElems--;
return temp;
}
// 取出队列头元素
public long getHeader(){
return queueArray[header];
}
// 取出队列数组
public long[] getArray(){
return queueArray;
}
}
队列是先进先出,可以想象成火车进隧道
优先级队列:
import java.util.Arrays; /**
* 优先级数组
*
* @author Orlion
* @create 2015-09-12
*/
public class PriorityQDemo { private int maxSize;
private long[] priorityqArray;
private int header;
private int footer; public PriorityQDemo(int size){ maxSize = size;
priorityqArray = new long[maxSize];
header = 0;
footer = -1;
}
// 插入优先级数组
public void insert(long element){ int i = footer;
while(i > 0 && priorityqArray[i] > element){
priorityqArray[i + 1] = priorityqArray[i];
i--;
}
priorityqArray[i+1] = element;
footer++;
}
// 出队列
public long remove(){ long temp = priorityqArray[header];
priorityqArray[header] = 0;
if(++header == maxSize){
header = 0;
}
return temp;
}
// 打印队列
public void getPriorityq(){
System.out.print(Arrays.toString(priorityqArray));
}
}
可以理解成有一定顺序的队列,也是先进先出
队列-java代码的更多相关文章
- redis实现消息队列-java代码实现
转:https://blog.csdn.net/qq_42175986/article/details/88576849 pom.xml <!-- redis依赖 --> <depe ...
- 数据结构之链表、栈和队列 java代码实现
定义抽象节点类Node: package cn.wzbrilliant.datastructure; /** * 节点 * @author ice * */ public abstract class ...
- java代码实现队列的优化
package com.voole.queun; /** * @Decription 队列 * @author TMAC-J * */ public class Queun { /** * 初始化队列 ...
- 初试kafka消息队列中间件二(采用java代码收发消息)
初试kafka消息队列中间件二(采用java代码收发消息) 上一篇 初试kafka消息队列中间件一 今天的案例主要是将采用命令行收发信息改成使用java代码实现,根据上一篇的接着写: 先启动Zooke ...
- java中使用队列:java.util.Queue (转)
Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Queue接 口.Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类 ...
- 爬虫技术之——bloom filter(含java代码)
在爬虫系统中,在内存中维护着两个关于URL的队列,ToDo队列和Visited队列,ToDo队列存放的是爬虫从已经爬取的网页中解析出来的即将爬取的URL,但是网页是互联的,很可能解析出来的URL是已经 ...
- 常见的排序算法之Java代码解释
一 简要介绍 一般排序均值的是将一个已经无序的序列数据重新排列成有序的 常见的排序分为: 1 插入类排序 主要就是对于一个已经有序的序列中,插入一个新的记录.它包括:直接插入排序,折半插入排序和希尔排 ...
- Spring学习笔记1——IOC: 尽量使用注解以及java代码(转)
在实战中学习Spring,本系列的最终目的是完成一个实现用户注册登录功能的项目. 预想的基本流程如下: 1.用户网站注册,填写用户名.密码.email.手机号信息,后台存入数据库后返回ok.(学习IO ...
- 200行Java代码搞定计算器程序
发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...
随机推荐
- VS2013安装部署项目
打开vs2013/2015菜单扩展和更新,查找Installer,找到Microsoft Visual Studio 2015 Installer Projects并下载安装. 安装之后模板中即有“安 ...
- PHP的高效IOC框架——CanoeDI
一个非常简单且实用的IoC框架,相对于其他的Ioc框架有如下特点: 高效: 框架使用了非常实用且高效的算法,使得框架本身对应用的影响微乎其微,且框架提供了C扩展,最大限度的将性能提升到最高. 配置简单 ...
- dataGrid转换dataTable
#region dataGrid转换dataTable /// <summary> /// dataGrid转换dataTable /// </summary> ...
- Ubuntu12.04下编译OpenCv2.4.9程序
引用地址http://blog.163.com/huai_jing@126/blog/static/171861983201311103411229/ 方法1:直接命令编译: g++ main.cpp ...
- 不常用的toLocaleString()方法
在javascript中所有的对象都具有toLocaleString().toString()和valueOf()方法. 其中,很多情况调用toString()和valueOf方法会返回相同的值,但是 ...
- C# Http Get 提交请求
/// <summary> /// HTTP GET方式请求数据. /// </summary> /// <param name="url">U ...
- hdu 4698 - Counting(思路)
转:题意:给定一个二维平面,其中x取值为1-N,y取值为1-M,现给定K个点,问至少包括K个点中的一个的满足要求的<Xmin, Xmax, Ymin, Ymax>共有多少中取值情况.也就是 ...
- HTML5-属性
点击图片打开详细介绍页面
- Spring 使用JSTL标签显示后台数据
1. 先上项目结构图,其中config包下的代码文件参见前一篇博客 http://www.cnblogs.com/njust-ycc/p/6123505.html 引包: 2. 主要代码 (1)U ...
- <2048>游戏问卷调查心得与体会
这是我的首次做问卷调查,刚开始感到不知所措,不知道该怎么去完成它,但是其中也充满了所谓的新鲜感,以前总是填别人做的问卷调查,但是现在是我们小组自己讨论得到的一张属于自己的问卷,可以说感受很深,一张小小 ...