您的位置:首页 > 编程语言 > Java开发

Java循环队列(数组实现)

2016-09-09 22:01 701 查看
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();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java