Non capire questo (BST) esempio algoritmo Binary Search Albero

voti
2

Nel codice di eliminazione da qui .

Non capisco il primo frammento di codice delezione (dove il nodo non ha due figli).

Se il nodo di essere eliminati ha un genitore e un bambino stesso (cioè il nodo ha un bambino) come funziona?

Il codice è solo l'eliminazione del nodo e non impostando i puntatori del genitore al bambino ormai orfano.

Mi sto perdendo qualcosa?

È pubblicato 12/04/2011 alle 20:58
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Potrei sbagliarmi, ma il codice sul sito di riferimento sembra OK. Non ho ancora testato, però.

Questo è vero, poiché la funzione di eliminazione prende un argomento che è di tipo BSTNode ** nodo. Questo non è un puntatore al nodo. Questo è un puntatore al puntatore del nodo del genitore per il nodo stesso . Questo potrebbe essere un po 'sciatto, ma devo ammettere dopo aver capito che cosa fa il codice, è un elegante nella sua soluzione di modo. Così, quando si riscrivono (* nodo), non si sta riscrivendo il nodo in sé , invece si stanno riscrivendo del genitore del nodo puntatore al nodo . Effettivamente il codice sta facendo quello che avete suggerito in un modo un po 'perverso: D. Spero di aver capito quello che volevo dire e spero ho capito bene.

Io consiglio anche di leggere ulteriormente circa alberi rosso-neri, dal momento che questo articolo fornisce una visione solo per creare l'albero, ma la struttura descritta non ha limiti asintotica per la sua altezza. Se, ad esempio, si preme valori ordinati in questa struttura, sarà una lista collegata al posto di un albero bilanciato.


Risposto il 12/04/2011 a 21:25
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more