下面小编就为大家带来一篇java用数组实现循环队列的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
复习了下数据结构,用java的数组实现一下循环队列。
队列的类
//循环队列
class cirqueue{
private int queuesize;
private int front;
private int rear;
private int[] queuelist ;
public cirqueue(int queuesize){
this.queuesize = queuesize;
queuelist = new int[queuesize];
front = 0;
rear = 0;
}
//获取队列头元素
public int getqueueelement(){
//如果队列不为空,返回队头元素,否则抛出异常提示队列为空
int element = -1;
if(!isempty()){
element = queuelist[front];
return element;
}
else {
system.out.println("队列为空");
return -1;
}
}
//出队
public int dequeue(){
int element = -1;
if(!isempty()){
element = queuelist[front];
front =(front+1)%queuesize;
return element;
}
else {
system.out.println("队列为空");
return -1;
}
}
//入队
public void enqueue(int element){
//如果队列未满,添加元素到队尾,否则提示队列已满
if(!isfull()){
queuelist[rear] = element ;
rear = (rear+1)%queuesize;
}
else {
system.out.println("队列已满");
}
}
//判断队列是否为空
public boolean isempty(){
boolean b = false;
if(rear == front)
b = true;
return b;
}
//判断队列是否已满
public boolean isfull(){
boolean b = false;
if((rear+1)%queuesize == front)
b = true;
return b;
}
}
创建对象并测试
package com.test;
import java.util.*;
public class structtest {
/**
* @param args
*/
public static void main(string[] args) {
// todo auto-generated method stub
//新建并初始化存储空间为3的循环队列(方便判断队满条件,浪费一个数组空间)
cirqueue cirqueue = new cirqueue(4);
//入队3个元素
cirqueue.enqueue(1);
cirqueue.enqueue(2);
cirqueue.enqueue(3);
//获取队头元素,获取 但不改变队列
int temp = cirqueue.getqueueelement();
system.out.println(temp);
//出队 获取队头元素,并且队头指针往后移一位
temp = cirqueue.dequeue();
system.out.println(temp);
//再次获取队头元素
temp = cirqueue.getqueueelement();
system.out.println(temp);
}
}
输出:
1
1
2
以上就是java如何使用数组实现循环队列的案例的详细内容。