随机队列:
import java.util.Iterator;
import java.util.Random;
public class RandomQueue<Item> implements Iterable<Item> {
private Item[] a;
private int N;
public RandomQueue() {
a = (Item[]) new Object[1];
N = 0;
}
public int size() {
return N;
}
public boolean isEmpty() {
return N == 0;
}
public void enqueue(Item item) {
if (N == a.length)
resize(2 * a.length);
a[N++] = item;
}
public Item dequeue() {
randomSwap();
Item item = a[--N];
a[N] = null;
if (N > 0 && N == a.length / 4)
resize(a.length / 2);
return item;
}
public Item sample() {
randomSwap();
return a[N-1];
}
@Override
public Iterator<Item> iterator() {
// TODO Auto-generated method stub
return null;
}
private void randomSwap() {
if(N<=1) return;
Random rand = new Random();
int swapIndex = rand.nextInt(N -