该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//所有代码,有两个函数没写
/**
* Auto Generated Java Class.
* 2015.3.7
*/
import java.util.Iterator;
public class RandomizedQueue implements Iterable{
private Item[] RQ;
private int N;
private int head;
private int tail;
public RandomizedQueue (){
RQ = (Item[]) new Object[1];
N = 0;
head = 0;
tail = 0;
}
public boolean isEmpty(){
return N == 0;
}
public int size(){
return N;
}
public void enqueue(Item item){
if(N == RQ.length)
resize(2*RQ.length);
RQ[++tail] = item;
N++;
}
public Item dequeue(){
int RN;
RN = StdRandom.uniform(head, tail);
RQ[RN] = null;
move(RN);
if(N > 0 && N == RQ.length/4)
resize(RQ.length);
return RQ[RN];
}
public Item sample(){
return RQ[StdRandom.uniform(head, tail)];
}
public Iterator iterator(){
return new ArrayIterator();
}
private class ArrayIterator implements Iterator{
private int[] random;
private int current = 0;
random = new int[N];
for(int i = 0; i < N; i++)
random[i] = head + i;
StdRandom.shuffle(random);
public boolean hasNext(){
return current != (N - 1);
}
public void remove(){ }
public Item next(){
return RQ[random[current++]];
}
}
private void move(int x){
}
private void resize(int max){
}
}