Come eliminare un nodo di un albero?

S
SkyLion (1020 points)
5 15 24
asked Nov 29, 2017 in Es1 by SkyLion (1,020 points)
recategorized Nov 30, 2017 by andrea.sterbini
Mi riferisco sia al primo che al terzo esercizio dell'Homework 4.

Io ho pensato che per eliminare un nodo e tutti i suoi figli, devo ricorsivamente eliminare prima tutti i suoi figli e poi sè stesso con un banale del(nodo)... però poi non dovrei anche eliminare il suddetto nodo dalla lista dei figli del suo genitore? Se si, come posso fare per eseguire questa operazione?
406 views
closed with note: answered

1 Answer

Best answer
split (8700 points)
15 59 79
answered Nov 29, 2017 by split (8,700 points)
selected Nov 29, 2017 by SkyLion
l funzione del() o lil metodo pop() per dizionari eliminano sia chiave che valori in una sola chiamata. il metodo pop() inoltre ritorna il valore eliminato, il che è molto utile secondo me.

puoi partire tranquillamente dalla radice ed eliminare i nodi man mano che li incontri. per eliminare la specifica x dai valori devi per forza andare a cercarla "a mano"... credo non ci siano altri grandi soluzioni per questo, o almeno io non ne ho trovate. comunque sia una volta eliminato il sottoalbero puoi scorrere il diz rimasto in cerca della tua chiave tra i valori ed eliminarla (con del o con remove...devi toglierla da una lista).