public class CircularQueue
{
private int front;
private int rear;
private int queueSize;
private char itemArray[];
public CircularQueue(int queueSize)
{
front = 0;
rear = 0;
this.queueSize = queueSize;
itemArray = new char[this.queueSize];
}
public boolean isEmpty()
{
return (front == rear);
}
public boolean isFull()
{
return ((rear+1)%this.queueSize == front);
}
public void enQueue(char item)
{
if(isFull())
{
System.out.println("queue full!");
}
else
{
rear = (rear + 1) % this.queueSize;
itemArray[rear] = item;
}
}
public char deQueue()
{
if(isEmpty())
{
System.out.println("queue empty!");
return 0;
}
else
{
front = (front + 1)%this.queueSize;
return itemArray[front];
}
}
public void delete()
{
if(isEmpty())
{
System.out.println("queue empty!");
}
else
{
front = (front+1)%this.queueSize;
}
}
public char peek()
{
if(isEmpty())
{
System.out.println("queue empty!");
return 0;
}
else
{
return itemArray[(front+1)%this.queueSize];
}
}
public void printQueue()
{
if(isEmpty())
{
System.out.println("queue empty!");
}
else
{
System.out.print("Array circular queue >> ");
for(int i = (front+1)%this.queueSize; i != (rear+1)%this.queueSize; i = ++i % this.queueSize)
{
System.out.printf("%c ", itemArray[i]);
}
System.out.println();
System.out.println();
}
}
}
CircularQueue(int queueSize)
: 배열의 크기를 인자로 받아, 초기 큐를 생성한다.isEmpty()
: 큐가 비었는지 확인한다.isFull()
: 큐가 모두 찼는지 확인한다.enQueue(char item)
: 큐에 자료를 삽입한다.deQueue()
: 큐에서 자료를 꺼내고, 큐에서 자료를 삭제한다.delete()
: 큐에서 자료를 삭제한다.peek()
: 큐에서 자료를 꺼낸다.public class CircularQueue
{
private int front;
private int rear;
private int queueSize;
private char itemArray[];
public CircularQueue(int queueSize)
{
front = 0;
rear = 0;
this.queueSize = queueSize;
itemArray = new char[this.queueSize];
}
public boolean isEmpty()
{
return (front == rear);
}
public boolean isFull()
{
return ((rear+1)%this.queueSize == front);
}
public void enQueue(char item)
{
if(isFull())
{
System.out.println("queue full!");
}
else
{
rear = (rear + 1) % this.queueSize;
itemArray[rear] = item;
}
}
public char deQueue()
{
if(isEmpty())
{
System.out.println("queue empty!");
return 0;
}
else
{
front = (front + 1)%this.queueSize;
return itemArray[front];
}
}
public void delete()
{
if(isEmpty())
{
System.out.println("queue empty!");
}
else
{
front = (front+1)%this.queueSize;
}
}
public char peek()
{
if(isEmpty())
{
System.out.println("queue empty!");
return 0;
}
else
{
return itemArray[(front+1)%this.queueSize];
}
}
public void printQueue()
{
if(isEmpty())
{
System.out.println("queue empty!");
}
else
{
System.out.print("Array circular queue >> ");
for(int i = (front+1)%this.queueSize; i != (rear+1)%this.queueSize; i = ++i % this.queueSize)
{
System.out.printf("%c ", itemArray[i]);
}
System.out.println();
System.out.println();
}
}
}
[자바로 배우는 쉬운 자료구조] ,한빛아카데미