오라클자바커뮤니티에서
설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL,
튜닝, 힌트,자바프레임워크, 안드로이드,
아이폰, 닷넷 실무전문 강의)
public class ArrayQueue implements Queue
{
// data members
int front; // one counterclockwise from first element
int rear; // position of rear element of queue
Object [] queue; // element array
{
// data members
int front; // one counterclockwise from first element
int rear; // position of rear element of queue
Object [] queue; // element array
public ArrayQueue(int initialCapacity)
{
if (initialCapacity < 1)
throw new IllegalArgumentException
("initialCapacity must be >= 1");
queue = new Object [initialCapacity + 1];
// default front = rear = 0
}
public boolean isEmpty() {
return front == rear;
}
public Object getFrontElement() {
if (isEmpty()) return null;
else return queue[(front + 1) % queue.length];
}
public Object getRearElement() {
if (isEmpty()) return null;
else return queue[rear];
}
public void put(Object theElement) {
// increase array length if necessary
if ((rear + 1) % queue.length == front) {
// double array size
// code to double array size comes here
}
if ((rear + 1) % queue.length == front) {
// double array size
// code to double array size comes here
}
// put theElement at the rear of the queue
rear = (rear + 1) % queue.length;
queue[rear] = theElement;
}
rear = (rear + 1) % queue.length;
queue[rear] = theElement;
}
public Object remove() {
if (isEmpty())
return null;
front = (front + 1) % queue.length;
Object frontElement = queue[front];
queue[front] = null; // enable garbage collection
return frontElement;
}
댓글 없음:
댓글 쓰기