Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Sempre ste code
Forum - Java - Sempre ste code

Avatar
aduri (Normal User)
Newbie


Messaggi: 11
Iscritto: 03/10/2006

Segnala al moderatore
Postato alle 18:19
Sabato, 28/10/2006
L'argomento ridimensionamento code non mi e' chiaro.

public void enqueue(Object el) {
if (isFull())
doubleQueue();
protected void doubleQueue(){
Object[] newdata = new Object[2*size];
for(int i=first, j=0; j<size; j++, i++,i=i%size){
newdata[j] = data;
}
first=0;
last=size-1;
size=2*size;
data=newdata;
}

public Object dequeue() {
int elem;
if (first<=last)
elem=last-first+1;
else
elem=size-first+last+1;
if (( elem<size/4) && (elem>=s_size/4))
halfQueue(elem);
......

protected void halfQueue(int elem){
Object[] newdata = new Object[size/2];
for(int i=first, j=0; j<elem; j++,
i++,i=i%size ){
newdata[j] = data;
}
first=0;
last=elem-1;
size=size/2;
data=newdata;
}


Se non ho capito male il primo metodo enqueue(Object el) verifica se l'array e' pieno e se si'
ne raddoppia la taglia caricando i dati sul nuovo array.(anche se non capisco i=%size)
Nella seconda parte che descrive i metodi dequeue() e halfqueue(int el) non capisco i controlli di size cosa facciano.
  

PM Quote