Salve a tutti , dovrei fare un esercizio sulle liste.
L'esercizio è il seguente :
Si definisca la classe Lista che rappresenta una lista di interi concatenata tramite riferimenti.
Nella classe Lista si definisca:
• il costruttore (che dato un parametro n costruisce una lista di n valori casuali)
• il metodo verifica che, in modo efficiente, verifica se ogni elemento della lista è
maggiore dei precedenti (la proprietà si considera sempre vera per il primo elemento
della lista).
Si realizzi infine una applicazione che:
• costruisce una lista di 4 elementi;
• stampa a video il risultato della chiamata del metodo verifica.
Tralasciando il passo 1 (banale da fare) , sono passato al secondo , cercando di fare un metodo RICORSIVO.
Ho pensato di farlo e scriverlo cosi.
Intanto , dato che è un metodo ricorsivo , si parte con il passo base cioè if (t==null) , poi si passa al resto.
Ho provato a scriverlo cosi , ma non va, sapreste dirmi il perchè?
private boolean verifica (Elemento t){
boolean verificazione=false;
if (t==null)
return verificazione;
else {
if (t.next.info>t.info){
verificazione=true;
verifica(testa.next);
}
}
return verificazione;
}
public boolean verifica(){
return verifica(testa);
}
Inoltre ho fatto una classe elemento in cui ho dichiarato un int chiamato info e l'elemento next che punta al successivo.
Cosa non va bene secondo voi di questo metodo?