public class Q {
private int head;
private int tail;
private int size;
private Integer[] q;
public Q(int size) {
q = new Integer[size];
head = 0;
tail = 0;
}// Q.constructor
public void print() {
System.out.print("[ ");
if (head < tail) {
for (int i = head; i < tail; i++) {
System.out.printf("%d", q[i]);
if (q[i + 1] != null)
System.out.print(", ");
}
System.out.println(" ] ");
} else {
for (int i = head; i < q.length - 1; i++) {
System.out.printf("%d, ", q[i]);
}
System.out.printf("%d", q[q.length - 1]);
if (q[0] != null)
System.out.print(", ");
for (int i = 0; i < tail; i++) {
if (q[i] != null) {
System.out.printf("%d", q[i]);
if (i != tail - 1)
System.out.print(", ");
}
}
System.out.println(" ] ");
}
}// Q.print
public void enqueue(int a) {
if ( isFull() ) {
System.out.println("this queue is full. you can not enqueue anymore.");
return;
}
q[tail] = a;
if (tail == q.length - 1)
tail = 0;
else
tail++;
print();
}// Q.enqueue
public void dequeue() {
if( !isFull() && head == tail ) {
System.out.println("this queue is empty. you can not dequeue anymore.");
return;
}
q[head] = null;
if (head == q.length - 1)
head = 0;
else
head++;
print();
}// Q.dequeue
public boolean isFull() {
if(head == tail && q[head] != null)
return true;
else
return false;
}// Q.isFull
}// class Q
'PROGRAMMING > Java' 카테고리의 다른 글
자바 예제 코드 - 두 이진수 더하기(add two binary numbers) (0) | 2018.02.11 |
---|---|
자바 예제 코드 - 삽입정렬(SelectionSort) (0) | 2018.02.11 |
자바 예제 코드 - 회문(palindrome) 확인 메소드 (0) | 2018.02.09 |
트리셋(TreeSet)을 이용한 자동 로또 번호 생성 코드 (0) | 2018.02.09 |
자바 예제 코드 - 이중연결리스트 (Doulby Linked List) (0) | 2018.02.08 |