public class Queue {
private int[] array;
private int front;
private int rear;
public Queue(){
array = new int[10];
front = 0;
rear = 0;
}
public Queue(int size){
this.array = new int[size];
front = 0;
rear = 0;
}
public void enqueue(int element)throws Exception{
if (isfull()){
//进队通过队尾的索引进行添加
array[rear] = element;
rear++;
rear = rear%array.length;
}
else{
throw new Exception("队列已满");
}
}
public void dequeue()throws Exception{
//判断队列空了没有
front++;
front = front%array.length;
if (isempty()){
throw new Exception("队列已空");
}
}
public boolean isempty(){
if (front == rear){
return true;
}
return false;
}
public boolean isfull(){
if ((rear+1)%array.length != front){
return true;
}
return false;
}
public void output(){
//针对2种情况进行输出,不够简洁!!!!!
if (front<rear){
for (int i = front; i < rear; i++) {
System.out.print(array[i]+" ");
}
}
else{
for (int i = front; i <array.length; i++) {
System.out.print(array[i]+" ");
}
for (int i = 0;i<rear;i++){
System.out.println(array[i]+" ");
}
}
System.out.println();
}
public static void main(String[] args) throws Exception{
Queue queue = new Queue(8);
for (int i = 0; i < 3; i++) {
queue.enqueue(i);
}
queue.output();
queue.dequeue();
queue.output();
queue.enqueue(9);
queue.output();
queue.dequeue();
queue.dequeue();
queue.output();
queue.enqueue(8);
queue.enqueue(7);
queue.output();
}
}
循环数组实现队列(Java编程)
最新推荐文章于 2022-10-24 12:33:00 发布