Come posso cancellare un nodo da un BST?
Ho bisogno di un algoritmo per farlo in Dr. Scheme.
Come posso cancellare un nodo da un BST?
Ho bisogno di un algoritmo per farlo in Dr. Scheme.
Assumendo che l'albero binario di ricerca utilizza le cellule dritto in avanti contro con contenuti solo le foglie, e supponendo che si sta lavorando su un compito a casa: è possibile utilizzare set-car!o set-cdr!per cambiare il contenuto di una cella cons.
Che, fondamentalmente, lancia il BST che hai ora, e creare una nuova sans l'elemento.
È possibile farlo in modo ricorsivo scendendo l'albero. Se il vostro articolo è inferiore il dato principale, creare un BST la cui radice e maggiore di ramo viene copiato da quello che hai ora, ma il cui ramo di meno-che è il risultato di una chiamata ricorsiva.
E 'molto simile a come si aggiunge un nodo, ma quando si arriva a quello che cercavi, unire i due BST sotto di esso e restituire il risultato. Ci sono domande sicuramente esistenti su come farlo già.