Java用数组实现循环队列

复习了下数据结构,用Java的数组实现一下循环队列。

队列的类

 1 //循环队列 2 class CirQueue{ 3     private int QueueSize; 4     private int front; 5     private int rear; 6     private int[] queueList ; 7      8     public CirQueue(int QueueSize){ 9         this.QueueSize = QueueSize;    10         queueList = new int[QueueSize];11         front = 0;12         rear = 0;13     }14     15     //获取队列头元素16     public int getQueueElement(){17         //如果队列不为空,返回队头元素,否则抛出异常提示队列为空18         int element = -1;19         if(!isEmpty()){20             element = queueList[front];21             return element;22         }23         else {24             System.out.println("队列为空");25             return -1;26         }27         28     }29     30     //出队31     public int deQueue(){32         int element = -1;33         if(!isEmpty()){34             element = queueList[front];35             front =(front+1)%QueueSize;36             return element;37         }38         else {39             System.out.println("队列为空");40             return -1;41         }42         43     }44     45     46     47     48     49     //入队50     public void enQueue(int element){51         //如果队列未满,添加元素到队尾,否则提示队列已满52         if(!isFull()){53             queueList[rear] = element ;54             rear = (rear+1)%QueueSize;55             56         }57         else {58             System.out.println("队列已满");59         }60     }61     62     //判断队列是否为空63     public boolean isEmpty(){64         boolean b = false;65         if(rear == front)66             b = true;67         return b;68     }69     70     71     //判断队列是否已满72     public boolean isFull(){73         boolean b = false;74         if((rear+1)%QueueSize == front)75             b = true;76         return b;77     }78 79 }

创建对象并测试

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);                    }}

输出:

112

人生最大的错误是不断担心会犯错

Java用数组实现循环队列

相关文章:

你感兴趣的文章:

标签云: