Java用数组实现顺序队列
来源:互联网 发布:七月算法 视频 编辑:程序博客网 时间:2024/05/29 04:34
写一个常用的算法,用数组实现队列。
import java.util.*;
/**
* 顺序存储结构队列
*/
public class MyQueue {
private static final int MAX_SIZE = 100;
private Object[] queue; //队列
private int front; //头指针
private int rear; //尾指针
private int length; //队列初始化长度
//初始化队列
private void init(){
queue = new Object[this.length + 1];
front = rear = 0;
}
//入队
public void put(Object object) throws Exception{
if(isFull()){
throw new Exception("入队失败!队列已满!");
}
queue[rear] = object;
rear = (rear + 1) % queue.length;
}
//出队
public Object get() throws Exception{
if(isEmpey()){
throw new Exception("出队失败!队列为空!");
}
Object object = queue[front];
queue[front] = null; //释放对象
front = (front + 1) % queue.length;
return object;
}
//清空队列
public void clear(){
queue = null;
queue = new Object[this.length];
}
//获得队列当前大小
public int size(){
return (rear - front + queue.length ) % queue.length;
}
//判断队列是否已满
public boolean isFull(){
return (rear + 1) % queue.length == front;
}
//判断队列是否为空
public boolean isEmpey(){
return front == rear;
}
public MyQueue(){
this.length = MAX_SIZE;
init();
}
public MyQueue(int length){
this.length = length;
init();
}
public static void main(String[] args) {
MyQueue queue = new MyQueue(5);
char[] data = new char[]{'沧','海','一','声','笑'};
try {
for (int i = 0; i < data.length; i++) {
System.out.println("入队数据:" + data[i]);
queue.put(data[i]);
}
System.out.println("队大小:" + queue.size());
System.out.println("---------------------");
while(!queue.isEmpey()){
System.out.println("出队数据:" + queue.get());
}
System.out.println("队空否?\t" + queue.isEmpey());
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Java用数组实现顺序队列
- Java用数组实现顺序队列
- Java用数组实现顺序队列
- Java 数组实现顺序队列
- java使用数组实现顺序队列
- Java数组实现顺序栈与队列
- 数组实现顺序队列、顺序循环队列
- Java实现顺序队列
- 用Java数组实现队列
- java 用数组实现队列
- java实现 用数组实现循环队列
- 顺序队列(java实现)
- 顺序队列的java实现
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- java队列实现(顺序队列、链式队列、循环队列)
- Unity3D基础篇----Shader学习笔记(3)
- Matlab figure传入数据到figure(二)
- 树的遍历
- LeetCode OJ 456 132 Pattern [Medium]
- Jni数据类型
- Java用数组实现顺序队列
- 主题三 编译过程介绍----17.条件编译的使用分析
- A20地址线问题
- 矩阵的转置
- BMS电池管理系统被动均衡现象描述
- 【已解决】Linux redhat 6.4上安装VNC Server
- Html-CSS
- 关于Markdown里的图片并排显示
- 三张图搞懂OpenGL