Forstår ikke dette binært søketre (BST) eksempel algoritme

stemmer
2

I slettingen koden fra her .

Jeg forstår ikke den første bit med sletting kode (hvor noden ikke har to barn).

Hvis noden blir slettet har en forelder og et barn selv (dvs. node har ett barn) hvordan fungerer dette?

Koden er bare å slette noden og ikke sette foreldrenes pekere til nå foreldreløse barn.

Har jeg gått glipp av noe?

Publisert på 12/04/2011 klokken 19:58
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Jeg kan være galt, men koden på den refererte området synes OK. Jeg har ikke testet det, skjønt.

Dette er sant, fordi slettefunksjonen tar ett argument som er av typen BSTNode ** node. Dette er ikke en peker til noden. Dette er en peker til foreldrenes noden pekeren til noden selv . Dette kan være litt slurvete, men jeg må innrømme etter å realisere hva koden gjør, er det en elegant på sin måte løsning. Så når du omskrive (* node), er du ikke omskriving noden selv , i stedet du omskriving nodens forelder peker til noden . Effektivt koden gjør hva du foreslo i en litt pervers måte: D. Håper du forsto hva jeg mente, og jeg håper jeg har gjort det rette.

Jeg vil også anbefale at du leser videre om rød-svart trær, siden denne artikkelen gir innsikt bare å skape treet, men den beskrevne strukturen har ingen asymptotiske grenser for sin høyde. Hvis for eksempel du skyver sorterte verdier i denne strukturen, vil det være en tilkoblet liste i stedet for et balansert tre.


Svarte 12/04/2011 kl. 20:25
kilden bruker

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