您的位置:首页 > 理论基础 > 数据结构算法

Java数据结构与算法---队列

2017-06-10 18:15 176 查看

Java数据结构与算法—队列

本代码使用数组实现队列,通过一个判断方法实现了循环队列

源代码如下:

package cn.h_queue;

public class QueueArray {
private int[] a;

//最大空间
private int size;
//有效位
private int ele;

private int font;
private int end;

public QueueArray(int s){
size=s;
a = new int[size];
ele=0;
font=0;
end=-1;
}
//是否为空
public boolean isEmpty(){
return (ele==0);
}
//是否满
public boolean isFull(){
return (ele==size);
}

//如果font==size就重新归位(实现了循环队列)
public void rollback(){
if(isEmpty()&&size==font){
ele=0;
font=0;
end=-1;
System.out.println("font ==end,重新归位!");
}
}

//入队
public void insert(int x){
rollback();
if(!isFull()){
a[++end]=x;
ele++;
}else{
System.out.println("队列满了 不能插入");
}
}

//出队
public int remove(){
if(!isEmpty()){
ele--;
return a[font++];
}
System.out.println("队列为空!不能出队");
return -1;
}

public static void main(String[] args) {

QueueArray que = new QueueArray(4);
que.insert(1);
que.insert(2);
que.insert(3);
que.insert(4);
que.insert(5);
que.insert(6);

for(int i=0;i<6;i++){
System.out.println("出队:"+que.remove());
}
//////////////再入/////////////
System.out.println("///////////////////////");
que.insert(5);
que.insert(6);

for(int i=0;i<3;i++){
System.out.println("出队:"+que.remove());
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息