Ciao a tutti, come faccio a stampare su finestra dos un albero?
Ciao a tutti, come faccio a stampare su finestra dos un albero?
Dipende molto da come lo vuoi "vedere" a livello visivo. Se ti basta ad esempio stampare ogni nodo su una riga e che la "profondità" si veda con una "indentazione" fatta con N spazi, è tuttosommato semplice.Originariamente inviato da Number22
come faccio a stampare su finestra dos un albero?
Usi ovviamente la ricorsione, fai un metodo ricorsivo che riceve nodo e "livello" (un int). Stampi N spazi in base al livello, poi stampi il nodo e newline. Vai in ricorsione sui figli aggiungendo 1 al livello.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ad esempio:
A (
B
C (
D
)
E
)
- la radice è A;
- A ha tre figli: B, C, E;
- C ha un figlio: D.
Non ho la minima idea di come fare!
Qui non vedo "indentazione" (quindi non c'è bisogno di "sapere" il livello di profondità).Originariamente inviato da Number22
Ad esempio:
A (
B
C (
D
)
E
)
- la radice è A;
- A ha tre figli: B, C, E;
- C ha un figlio: D.
Non ho la minima idea di come fare!
Basta che fai un metodo ricorsivo che riceve un nodo. Stampi il nodo, poi verifichi se ha figli. Se ne ha stampi '('. Quindi vai a capo (in ogni caso).
Poi cicli sui figli e invochi ricorsivamente il metodo con il figlio i-esimo.
Finito il ciclo, sapendo che appunto figli ce n'erano, stampi una riga con ')'.
E la cosa funziona perfettamente, in generale.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet