|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jan 2006
Messaggi: 21
|
indexOf ricorsivo
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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 1056
|
in simil-java (anche se dire java e' dire tutto e niente perche quandi dici simil-*....
![]() Codice:
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()); } 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 Ultima modifica di smartz : 02-04-2006 alle 19:49. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 1056
|
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...... ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:27.