HW4BIS esercizio 2 sono bloccato

DRDLCN (8070 points)
3 67 104
asked Mar 13, 2019 in HW4bis by DRDLCN (8,070 points)
recategorized Mar 13, 2019 by andrea.sterbini

leggendo su q2a ho visto che una strada per risolvere l'es è creare liste di questo genere...['  80  ',' _|_  ','|   | ','70  90']

ma non ho ben capito come, come le metto le foglie dello stesso padre sullo stesso elemento della lista?

io avevo pensato a mettere tutto quello che ha uguale lunghezza dalla radice in un unico elemento ma non so se posso aggiungere metodi nel file albero.py 

486 views

1 Answer

_andrea_ (45670 points)
2 40 297
answered Mar 13, 2019 by _andrea_ (45,670 points)
Le metti dando per scontato che la ricorsione tu ritorni l'albero giusto, e unendoli insieme. Per capire come, usa alberi di prova prima con un solo figlio, poi due figli foglie, poi due figli che hanno uno o due figli ciascuno. Quando hai capito i casi facili, la ricorsione fa il resto
_andrea_ (45670 points)
2 40 297
commented Mar 20, 2019 by _andrea_ (45,670 points)
No deve diventare una stringa che ora non ho voglia di scrivere ma deve avere i numeri, gli spazi, i collegamenti e gli accapo nel posto giusto, come negli esempi nel testo
E
Emanuelebev (720 points)
1 17 24
commented Mar 20, 2019 by Emanuelebev (720 points)
non posso manipolare questa stringa in modo che risulti giusta?
_andrea_ (45670 points)
2 40 297
commented Mar 20, 2019 by _andrea_ (45,670 points)
Ma tu parti da un albero e devi trovarti la stringa che lo rappresenta. La stringa devi crearla da 0 ma piuttosto che farti una lista di liste di stringhe e poi trasformarle nel risultato fatti direttamente il risultato
D
Deacoon (9100 points)
3 33 53
commented Jul 25, 2019 by Deacoon (9,100 points)

['  80  ',' _|_  ','|   | ','70  90']

come si fa questa lista se i figli sono piu di due?

andrea.sterbini (172780 points)
514 935 1789
commented Jul 26, 2019 by andrea.sterbini (172,780 points)
edited Jul 26, 2019 by andrea.sterbini

Cerca di ragionare come se tu fossi un editor di testo (per esempio Notepad++) e dovessi incollare due alberi uno a fianco all'altro aggiungendo le righe sopra e gli spazi in mezzo:

  • devi fare in modo che i due alberi abbiano la stessa altezza aggiungendo righe fatte di soli spazi in fondo al più corto
  • devi concatenare le righe dei due alberi aggiungendo gli spazi in mezzo
  • devi aggiungere le righe superiori che formano il disegno del nodo padre

E questo va fatto ricorsivamente su tutto l'albero