Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9

    [C] Lunghezza di cammino in un albero binario

    Ricordiamo che la lunghezza di cammino in un albero con radice è la somma delle distanze dei nodi dalla radice.
    Progettare un algoritmo ricorsivo per calcolare le lunghezze di cammino in un albero binario con radice qualsiasi.

    ho questo esercizio da svolgere ma non ho idea di come implementare la funzione ricorsiva per il calcolo della lunghezza di un cammino.
    chi mi da qualche consiglio per favore??
    grazie
    e tu non vai??

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    help help help
    e tu non vai??

  3. #3
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ciao, ma spiega meglio il tuo problema...cioè a te serve implementare una funzione ricorsiva che lavori su un albero binario(supponiamo che memorizzi interi) che, dato in input un valore, calcoli la lunghezza del percorso che c'è dalla radice a quel valore (nodo). giusto?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    io dovrei passare come parametro alla funzione ricorsiva il puntatore della radice del (sotto)albero. la funzione deve calcolare la lunghezza di cammino.
    ma che è questa lunghezza di cammino per definizione???
    e tu non vai??

  5. #5
    Più o meno la definizione è questa :
    Ricordiamo che la lunghezza di cammino in un albero con radice è la somma delle distanze dei nodi dalla radice.

    l'algoritmo è semplice, basta una funzione ricorsiva che somma uno per ogni nodo che trova, finché non trova il nodo cercato o arriva alla fine!

    Pero tu hai posto male il problema!!! Che percorso ti serve?? Cioè dalla radice a quale nodo??

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    la traccia dell'esercizio l'ho riportata tutta nel primo messaggio. anche secondo me il problema è mal posto, ma me l'hanno assegnato così e la professoressa non risponde.
    comunque per lunghezza di cammino si intende la lunghezza da una radice (di qualsiasi livello essa sia) a una foglia??
    o puo fermarsi anche in un nodo non foglia???
    e tu non vai??

  7. #7
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    bhè ma scusa se ti dice così l'esercizio è strano, perchè dovrebbe dirti il nodo di partenza( che supponiamo sia la radice) ma anche il nodo di arrivo!! non è detto che sia per forza una foglia!

  8. #8
    [quote]
    comunque per lunghezza di cammino si intende la lunghezza da una radice (di qualsiasi livello essa sia) a una foglia??
    [quote]

    la radice in un albero è unica.....

    Il camino è il percorso tra la radice è un nodo!!!

    per esempio, il un albero binario di ricerca, il percorso tra la radice è il nodo x si ottiene cosi:

    codice:
    int camino ( nodo * radice, int valore ) { 
                   if (!radice) return 0; 
                   if ( radice->valore == valore) return 1; 
                   if ( radice->valore > valore)  return 1 + camino(nodo->sinistra); 
                    else return 1 + camino ( nodo->destra);
    }+

  9. #9
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Ehm...okay la programmazione ma in genere si studia prima il linguaggio ITALIANO:
    Il camino è il percorso tra la radice e un nodo!!!
    ...
    il percorso tra la radice e il nodo x si ottiene cosi:
    per il resto si è corretto, nel caso di un BST, anche se sarebbe:
    codice:
    int camino ( nodo * radice, int valore ) { 
                   if (!radice) return 0; 
                   if ( radice->valore == valore) return 1; 
                   if ( radice->valore > valore)  return 1 + camino(nodo->sinistra, valore); 
                    else return 1 + camino ( nodo->destra, valore);
    }

  10. #10
    Non avevo riletto il messaggio....

    Poi l'avevo scritto appena svegliato!! E già tanto che il codice è corretto.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.