Pages: [1]   Go Down
Print
Author Topic: Chiarimento compito del 18  (Read 677 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« on: 23-12-2009, 14:33:43 »

Ragazzi volevo chiedervi dei chiarimenti sul 3 e 4 punto del compito:
per il quarto ecco il codice:
Code:
//METODO CHE PRESA IN INPUT UNA CATEGORIA MI STAMPA TUTTI I CAMMINI DALLA RADICE FINO A QUEL NODO CON LA STESSA CATEGORIA DATA IN INPUT
public void cammini(String cat)
{
lista w=new lista();//LISTA DOVE CONSERVERO I VARI CAMMINI PARZIALI
cammini1(w, cat, root);
}

private lista cammini1(lista w, String cat, Nodo aux)
{
if(aux!=null)
{
                      //SE INCONTRO DURANTE LA VISITA UN NODO CON LA STESSA CATEGORIA STAMPO IL CAMMINO PARZIALE E CONTINUO ALLA RICERCA DI ALTRI NODI CON LA STESSA CATEGORIA
if(((sitoweb)aux.getInfo()).compareTo(cat)==0)
{
w.insertTail(((sitoweb)aux.getInfo()).getCat_sito());
w.stampa();
}
else
w.insertTail(((sitoweb)aux.getInfo()).getCat_sito());
w=cammini1(w, cat, aux.getLeft());
w=cammini1(w, cat, aux.getRight());
}
return w;
}
il problema di questo codice è il seguente: quando trovo il valore che sto cercando, stampo il cammino parziale però quando la ricorsione ritorna indietro, nella lista rimangono conservati i valori parziali di volta in volta visitati. Come faccio a farmi conservare le liste con i cammini parziali in maniera tale che quando la ricorsione torna indietro alle chiamate in sospeso la lista assume i valori che aveva fino a quel punto esaminato?? Nn dovrebbe farlo in automatico la ricorsione che conserva le liste parziali nello stack delle chiamate??
Nn sò se ho spiegato bene il mio dubbio...

Invece per il punto 3 del compito ho capito che nn devo far altro che controllare le due condizioni per ogni nodo dell'albero, lanciando un semplice preorder e modificando la condizione della visita però per fare questo prima mi devo calcolare la somma del numero di pagine del sottoalbero sinistro e di quello destro. Il mio problema sorge qui in quanto se applico una visita Preorder l'albero viene visitato tutto e la somma la faccio per tutti i nodi ma come faccio a bloccare la ricorsione in maniera tale che mi faccio analizzare solo il sottoalbero destro o quello sinistro partendo dalla radice?Huh??
Qualcuno lo ha risolto? Potete postare le vostre soluzioni oppure darmi un suggerimento su come poter fare??
E' urgente!!
Grazie in anticipo a chi mi risponderà...
Il testo del compito lo trovate qui:
http://img705.imageshack.us/img705/9302/img019i.jpg
Logged
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #1 on: 24-12-2009, 10:51:44 »

Salve ragazzi,
ma nessuno puo rispondermi almeno se potete farlo per la parte del codicepostato ve ne sarei grato? pray
Logged
Pages: [1]   Go Up
Print
Jump to: