PDA

View Full Version : indexOf ricorsivo


lucajeck
01-04-2006, 19:41
Si sono sempre io, lo so che ormai sono un'incubo ma fino a giovedì (data dell'esame) devo sapere tutto, è troppo importante questo esame, mi blocca tutto...

Sei io ho un array di un qualsiasi ogetto generico T, come faccio a fare un metodo indexOf (che quindi mi restituisce la posizione dell'ogetto che riceve) ricorsivo.

grazie a tutti:bai

smartz
02-04-2006, 19:40
in simil-java (anche se dire java e' dire tutto e niente perche quandi dici simil-*.... :) )


public int indexOf (Object o, T[] list) {
/** lista di dimensione invalida **/
if (list.length<1) return -1;

/** se l'oggetto e' in ultima posizione **/
elseif list[list.length-1].equals(o) return (list.length-1);

/** se la lista e' lunga 1 ritorno false
* infatti ho gia controllato che non e' l'ultimo
*/
elseif (array.length==1) return -1;

/** altrimenti ritorno indexOf sulla lista senza l'ultimo **/
else return indexOf(o, list.sublist());
}


spero ti possa aiutare!
ti lascio implementare il sublist, che da un array di x elementi ne crea uno lungo x.length-1 con i primi x-1 :)

ciao

smartz
02-04-2006, 20:03
in parole:
se la lista e' vuota ritorno -1 (o un eccezione)
se l'ultimo in lista e' quello cercato ritorno il suo indice
se la lista e' di un elemento ritorno -1 (o un eccezione), in quanto se non e' l'ultimo e ce n'e' solo uno allora quello cercato non c'e'
ricorro sulla lista piu corta: cerco nella lista senza l'ultimo elemento.

un accademico potrebbe anche dimostrare per induzione che termina: c'e' il caso base e dato il caso n c'e' l'n+1......

:p