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(); } } 相关文章: