Java循环队列(数组实现)

来源:互联网 发布:proxifier linux版 编辑:程序博客网 时间:2024/05/18 20:07
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();    }}
0 1
原创粉丝点击