Oppid
14-11-2005, 09:32
Ragazzi sto implementando una classe ArrayQueue che realizza una coda con un array, adesso il problema è che quando l'array ( o la coda) è piena, io devo prevedere ad espanderla del doppio. L'array lo espande pure ma dopo nella coda appaiono tutti valori null. Ma dove sbaglio??? Grazie in anticipo :mc:
public void enqueue(Object element) throws QueueEmptyException{
if((rear + 1) % array.length == front){
System.out.println("La coda è piena,provvedo all' espansione!");
int nuovaCap = array.length*2;
Object nuovoArray[] = new Object[nuovaCap];
int s = size();
int i = 0;
int f;
for(f=front;f!=(rear + 1) % array.length;f = (f + 1) % array.length){
nuovoArray[i] = array[f];
i++;
}
array = nuovoArray;
front = 0;
rear = s;
}
array[rear] = element;
rear = (rear + 1) % array.length;
}
public void enqueue(Object element) throws QueueEmptyException{
if((rear + 1) % array.length == front){
System.out.println("La coda è piena,provvedo all' espansione!");
int nuovaCap = array.length*2;
Object nuovoArray[] = new Object[nuovaCap];
int s = size();
int i = 0;
int f;
for(f=front;f!=(rear + 1) % array.length;f = (f + 1) % array.length){
nuovoArray[i] = array[f];
i++;
}
array = nuovoArray;
front = 0;
rear = s;
}
array[rear] = element;
rear = (rear + 1) % array.length;
}