代码:
package com.one;
public class CircleIntQueue {
/**
* 总空间,第一个空间不使用
*/
public static final int TOTAL_SPACE = 10;
int[] data;
int head;
int tail;
public CircleIntQueue() {
data = new int[TOTAL_SPACE];
head = 0;
tail = 0;
}// of the first constructor
public void enqueue(int paraValue) {
if ((tail + 1) % TOTAL_SPACE == head) {
System.out.println("Queue full.");
return;
}// of if
data[tail % TOTAL_SPACE] = paraValue;
tail++;
}// of enqueue
public int dequeue() {
if (head == tail) {
System.out.println("No element in the queue");
return -1;//队空
}//of if
int resultValue = data[head % TOTAL_SPACE];
head++;
return resultValue;
} //of dequeue
public String toString () {
String resultString = "";
if(head == tail) {
return "empty";
}// of if
for (int i = head; i < tail; i++) {
resultString +=data[i % TOTAL_SPACE] + ",";
}// of for i
return resultString;
} // of toString
public static void main(String[] args) {
CircleIntQueue tempQueue = new CircleIntQueue();
System.out.println("Initialized, the list is: " + tempQueue.toString());
for (int i = 0; i < 5; i++) {
tempQueue.enqueue(i + 1);
}
System.out.println("Enqueue, the queue is: " + tempQueue.toString());
int tempValue = tempQueue.dequeue();
System.out.println("Dequeue " + tempValue + ", the queue is: " + tempQueue.toString());
for (int i = 0; i < 6; i++) {
tempQueue.enqueue(i + 10);
System.out.println("Enqueue, the queue is: " + tempQueue.toString());
}
for (int i = 0; i < 3; i++) {
tempValue = tempQueue.dequeue();
System.out.println("Dequeue " + tempValue + ", the queue is: " + tempQueue.toString());
}
for (int i = 0; i < 6; i++) {
tempQueue.enqueue(i + 100);
System.out.println("Enqueue, the queue is: " + tempQueue.toString());
}
}// of main
}// of CircleIntQueue
运行结果:
Initialized, the list is: empty
Enqueue, the queue is: 1,2,3,4,5,
Dequeue 1, the queue is: 2,3,4,5,
Enqueue, the queue is: 2,3,4,5,10,
Enqueue, the queue is: 2,3,4,5,10,11,
Enqueue, the queue is: 2,3,4,5,10,11,12,
Enqueue, the queue is: 2,3,4,5,10,11,12,13,
Enqueue, the queue is: 2,3,4,5,10,11,12,13,14,
Queue full.
Enqueue, the queue is: 2,3,4,5,10,11,12,13,14,
Dequeue 2, the queue is: 3,4,5,10,11,12,13,14,
Dequeue 3, the queue is: 4,5,10,11,12,13,14,
Dequeue 4, the queue is: 5,10,11,12,13,14,
Enqueue, the queue is: 5,10,11,12,13,14,100,
Enqueue, the queue is: 5,10,11,12,13,14,100,101,
Enqueue, the queue is: 5,10,11,12,13,14,100,101,102,
Queue full.
Enqueue, the queue is: 5,10,11,12,13,14,100,101,102,
Queue full.
Enqueue, the queue is: 5,10,11,12,13,14,100,101,102,
Queue full.
Enqueue, the queue is: 5,10,11,12,13,14,100,101,102,