Esercizio Algoritmi e Strutture Dati

Messaggioda AAnto » 22/03/2019, 15:03

Ciao a tutti...
se non è questa la sezione giusta, vi prego di perdonarmi...

Allora, sto studiando per l'esame di Algoritmi e sto svolgendo i primi esercizi sugli alberi binari.

Esempio questo:
"Si progetti un algoritmo che dato un albero binario, calcoli l'altezza del sotto albero radicato nel figlio di sinistra della radice".

Il mio problema risiede nel capire come valutare l'altezza del sotto albero del figlio di sx.
Per calcolare l'altezza di un albero completo riesco. In effetti per gli alberi binari si può implementare un algoritmo ricorsivo che si basa sulla tecnica del Divide et Impera..

Ad esempio (per l'albero intero):

altezza(u):
if(u==null)
return -1;
else
return 1 + max(altezza(u.sx), altezza(u.dx))

Ma non saprei come considerare solo il sotto albero del figlio sx.
Potreste aiutarmi?
AAnto
Junior Member
Junior Member
 
Messaggio: 131 di 326
Iscritto il: 13/07/2010, 14:05

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda vict85 » 22/03/2019, 15:41

L'algoritmo è lo stesso, solo che invece di partire da \(u\) parti da \(u.sx\).
vict85
Moderatore
Moderatore
 
Messaggio: 9587 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda AAnto » 22/03/2019, 16:19

Cioè:

altezza(u.sx):
if(u.sx==null)
return -1;
else
return 1 + max(altezza(?), altezza(?))


Cosa metto al posto di ?
AAnto
Junior Member
Junior Member
 
Messaggio: 132 di 326
Iscritto il: 13/07/2010, 14:05

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda vict85 » 22/03/2019, 16:35

In che linguaggio lo stai scrivendo? Comunque sarebbe qualcosa come:
Codice:
def altezza( u ):
    if( u == null )
        return -1
    return 1 + max( altezza( u.sx ), altezza( u.dx ) )

def altezza_sub_sx( u ):
    if( u == null )
        return -1
    return altezza( u.sx )


P.S.: Ti suggerisco di usare il tag code:
Codice:
[code]Il codice va qui[/code]
vict85
Moderatore
Moderatore
 
Messaggio: 9588 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda AAnto » 22/03/2019, 16:47

Pseudo codice C...
solo che non sto riescendo a capire
AAnto
Junior Member
Junior Member
 
Messaggio: 133 di 326
Iscritto il: 13/07/2010, 14:05

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda vict85 » 22/03/2019, 16:51

Cosa non capisci? Come calcoleresti quell'altezza a mano?
vict85
Moderatore
Moderatore
 
Messaggio: 9589 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Esercizio Algoritmi e Strutture Dati

Messaggioda Raptorista » 24/03/2019, 22:05

Moderatore: Raptorista

Sposto da Analisi numerica.


Ti stai perdendo in un bicchiere d'acqua.
  • Hai una funzione che calcola l'altezza di un albero.
  • "il sotto albero del figlio sx" è un albero.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 5245 di 9616
Iscritto il: 28/09/2008, 19:58


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite