package 队列;
/*
*
*/
public interface Queue<E> {
public int getSize();
public boolean isEmpty();
public void enqueue(E e);
public E dequeue();
public E getFront();
public E getRear();
public void clear();
}
接口的实现
package 队列;
/*
* 特殊的顺序表,
* 先进先出,在表尾入队,表头出队。
*/
import 顺序表.ArrayList;
public class ArrayQueue<E> implements Queue<E> {
private ArrayList<E> queue;
public ArrayQueue(int Capacity) {
queue = new ArrayList<>(Capacity);
}
public ArrayQueue() {
this(10);
}
@Override
public String toString() {
StringBuilder str = new StringBuilder("[");
if (isEmpty()) {
str.append(String.format("]*%d/%d", getSize(), getCapacity()));
} else {
for (int i = 0; i < getSize(); i++) {
if (i != getSize() - 1) {
str.append(queue.get(i) + ",");
} else {
str.append(queue.get(i) + "]");
}
}
str.append(String.format("*%d/%d", getSize(), getCapacity()));
}
return str.toString();
}
@Override
public int getSize() {
// TODO Auto-generated method stub
return queue.getSize();
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return queue.isEmpty();
}
@Override
public void enqueue(E e) {
// TODO Auto-generated method stub
queue.addLast(e);
}
@Override
public E dequeue() {
// TODO Auto-generated method stub
return queue.removeFirst();
}
@Override
public E getFront() {
// TODO Auto-generated method stub
return queue.getFirst();
}
@Override
public E getRear() {
// TODO Auto-generated method stub
return queue.getLast();
}
@Override
public void clear() {
// TODO Auto-generated method stub
queue.clear();
}
public int getCapacity() {
return queue.getCapacity();
}
}
测试
package 队列;
public class TestArrayQueue {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayQueue<Integer> q = new ArrayQueue<Integer>();
System.out.println(q);
q.enqueue(886);
q.enqueue(888);
q.enqueue(888);
q.enqueue(888);
q.enqueue(888);
q.enqueue(888);
q.enqueue(888);
q.enqueue(885);
q.enqueue(888);
q.enqueue(854);
q.enqueue(128);
System.out.println(q);
q.dequeue();
System.out.println(q);
}
}