Aiuto con esercizio ricorsivo (Alberi Binari)

di il
5 risposte

Aiuto con esercizio ricorsivo (Alberi Binari)

Salve a tutti e buonasera!
Vi chiedo se c'è qualche modo in cui voi possiate aiutarmi, visto che non riesco a capire bene praticamente niente... Se riusciste a postarmi un codice funzionante e spiegato sarebbe il top...
Ho iniziato un corso di programmazione in MIPS e come esercizio ci è stato assegnato quello di stampare a video il valore della massima lunghezza del percorso che interviene tra i nodi di un albero binario...
Ovviamente deve essere ricorsivo... Qualcuno può aiutarmi?

Questo è un esempio dell'albero con cui sto lavorando per fare una simulazione (sto usando Mars 4.5 come assembler):
.data
	tree: .word nodo1
	nodo1: .word 1, nodo2, nodo3
	nodo2: .word 2, nodo4, nodo5
	nodo3: .word 1, 0, 0
	nodo4: .word 1, nodo6, nodo7
	nodo5: .word 1, nodo8, nodo9
	nodo6: .word 1, 0, nodo10
	nodo7: .word 1, 0, 0
	nodo8: .word 1, 0, nodo11
	nodo9: .word 1, 0, 0
	nodo10: .word 1, nodo12, 0
	nodo11: .word 1, nodo13, 0
	nodo12: .word 1, 0, 0
	nodo13: .word 1, 0, nodo14
	nodo14: .word 1, 0, 0
In questo caso, la lunghezza massima del percorso tra due nodi presente è quella tra il nodo 12 e il nodo 14, con un valore pari a 9.
Potete aiutarmi? Per favore, vi imploro
                              1
                             /\
                            2  3
                           /\
                          4  5
                         /\  /\
                        6  7 8 9 
                         \    \
                         10   11
                         /    /
                       12    13
                              \
                              14

5 Risposte

  • Re: Aiuto con esercizio ricorsivo (Alberi Binari)

    Nessuno?
  • Re: Aiuto con esercizio ricorsivo (Alberi Binari)

    Nessuno ti darà codice funzionante, completo e commentato. Questa non è una software house ma un forum di cui non hai letto il regolamento.

    Proponi del codice tuo, illustra problemi ed eventuali errori e se ne parla.
  • Re: Aiuto con esercizio ricorsivo (Alberi Binari)

    Crossposting

    https://www.tomshw.it/forum/threads/assembly-aiuto-con-esercizio-ricorsivo-alberi-binari.711047/
  • Re: Aiuto con esercizio ricorsivo (Alberi Binari)

    E' che per me è un problema serio, sono davvero in difficoltà, non so come ragionare e rischio di abbattere un ottimo punteggio ottenuto sulla parte teorica...
  • Re: Aiuto con esercizio ricorsivo (Alberi Binari)

    Non ti posto il codice per ovvi motivi
    ma ti spiego per grosse linee cosa devi fare.
    scorri l'albero binario tenendo traccia del percorso.
    per tener traccia del percorso puoi usare 2 metodi:
    1) usi un vettore di stringhe dove per ogni nodo inserirai un carattere S se prendi il nodo destro e una S per quello sinistro.
    2) usi una matrice di interi ed un vettore dove per ogni nodo inserirai il valore del nodo preso,nella matrice, mentre nel vettore al corrispettivo indice di riga andrai a metterci il numero di elementi trovato.
    il percorso terminera quando il nodo da leggere sia a destra che a sinistra sara 0 o null.
    una volta terminati tutti i percorsi andrai a vedere quale stringa o quale riga di matrice e più lunga e andrai a stampare il ramo più lungo.
    e scocciante ma non difficile.
    spero di esserti stato d'aiuto.
Devi accedere o registrarti per scrivere nel forum
5 risposte