(java) array circolari e code

Discussione in 'Java' iniziata da aduri, 28 Ottobre 2006.

  1. aduri

    aduri Nuovo Utente

    Registrato:
    3 Ottobre 2006
    Messaggi:
    13
    Mi Piace Ricevuti:
    2
    Punteggio:
    0
    Occupazione:
    impiegato/studente
    Località:
    Genova
    Salve a tutti lo scritto di Java l’ho passato e ringrazio tutti ma per l’orale sto analizzando questo codice ma ho alcuni dubbi su dei metodi.


    Codice:
    public class ArrayQueue implements Queue { 
    int first, last, size; 
    Object[] data; 
    public ArrayQueue(int n){ 
    size=n; 
    data = new Object[size]; 
    first=last=-1; 
    } 
    public boolean isFull() { 
    return first==0 && last==size-1 || first==last+1; //caso a e b (chiaro) 
    } 
    public boolean isEmpty() { 
    return first==-1;  // array non inizializzato 
    } 
    public Object front() { return data[first];} //metodo che ritorna il primo elemento 
    
    public void clear() { last=first=-1;}} 
    
    public void enqueue(Object el) { 
    if (last==size-1 || last==-1){ 
    data[0]=el; 
    last=0; 
    if (first ==-1) 
    first=0; 
    } 
    else 
    data[++last]=el; 
    } 
    public Object dequeue() { 
    Object tmp = data[first]; 
    if (first==last) 
    last=first=-1; 
                     else if (first == size-1) 
    first=0; 
       else 
    first++; 
    return tmp; 
    }


    Nel metodo enqueue il primo if dice che se l’ultimo elemento dell’array esiste o l’array non e’ inizializzato si carica l’oggetto el nella prima posizione dell’array last si mette a 0 perche’ last corrisponde a first? Non caapisco poi il secondo if (first==-1) first=0; non dovrebbe anche qua caricare l’oggetto el essendo l’array non inizializzato?
    Il metodo dequeue crea un oggetto temporaneo col primo elemento dell’array poi col primo if fa un controllo per vedere se e’ presente un solo elemento se si’ ritorna l’array vuoto last=first=-1 poi controlla se c’e’ un solo elemento nell’ultima posizione e qui non capisco che differenza ci sia rispetto al precedente (non dovrebbe ritornare array vuoto first=last=-1)?
     
    A ottofonsuppost piace questo elemento.
Sto caricando...

Condividi questa Pagina