1. 程式人生 > >Java迴圈佇列(陣列實現)

Java迴圈佇列(陣列實現)

public class CycleArrayQueue
{
    private static final String TAG = "CycleArrayQueue";
    private Object[] queue;
    private int SIZE = 10;//初始化大小
    private int front = 0;
    private int rear = 0;
    private int usesize = 0;

    public CycleArrayQueue()
    {
        queue = new Object[SIZE];
    }

    public
boolean isEmpty() { return Math.abs(rear - front + SIZE) % SIZE == 0; } public int getSize() { return (Math.abs(rear - front + SIZE) % SIZE); } public void insert(Object obj) throws Exception { if ((rear + 1) % SIZE == front) throw new Exception("棧已滿!"
); queue[(rear % SIZE)] = obj; rear = (rear + 1) % SIZE; usesize++; } public void delete() throws Exception { if ((front + 1) % SIZE == rear) throw new Exception("空棧!"); queue[(front % SIZE)] = null; front = (front + 1) % SIZE; usesize--; } public
void display() throws Exception { if (usesize == 0) throw new Exception("空佇列!"); if (rear >= front) { for (int i = front; i < rear; i++) { System.out.print(queue[i] + "<-"); } } else { for (int i = front; i < SIZE; i++) { System.out.print(queue[i] + "<-"); } for (int i = 0; i < rear; i++) { System.out.print(queue[i] + "<-"); } } System.out.println(""); } public static void main(String[] args) throws Exception { CycleArrayQueue caq = new CycleArrayQueue(); caq.insert("123"); caq.insert("=="); caq.insert("tt123"); caq.insert("gg"); caq.display(); System.out.println(caq.getSize()); caq.delete(); caq.delete(); caq.insert("1="); caq.insert("2="); caq.insert("3="); caq.insert("4="); caq.insert("5="); caq.insert("6="); caq.insert("7="); // caq.insert("8="); // caq.insert("op="); caq.display(); } }