Niet begrijpen dit Binary Search Tree (BST) voorbeeld algoritme

stemmen
2

In de deletie code hier .

Ik weet niet de eerste fragment van deletie code te begrijpen (waar het knooppunt niet twee kinderen).

Als het knooppunt wordt verwijderd heeft een ouder en een kind zelf (dat wil zeggen het knooppunt heeft een kind) hoe werkt dit?

De code is gewoon verwijderen van het knooppunt en waarbij geen aanwijzingen van de ouders aan de nu weeskind.

Mis ik iets?

De vraag is gesteld op 12/04/2011 om 20:58
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Ik kan het mis hebben, maar de code op het gerefereerde site lijkt OK. Ik heb het echter niet getest.

Dit geldt, omdat de wisfunctie duurt een argument van het type BSTNode ** knooppunt. Dit is niet een pointer naar het knooppunt. Dit is een verwijzing naar de ouders knooppunt aanwijzer naar het knooppunt zelf . Dit kan een beetje slordig, maar ik moet toegeven dat na het realiseren van wat de code doet, het is een elegante in de weg oplossing. Dus als je herschrijven (* knooppunt), bent u niet het herschrijven van het knooppunt zelf , in plaats u het herschrijven van het knooppunt ouder pointer naar het knooppunt . Effectief de code doet wat je in een enigszins perverse manier voorgesteld: D. Ik hoop dat je begrepen wat ik bedoelde en ik hoop dat ik het goed.

Ik zou ook adviseren dat u verder te lezen over de rood-zwarte bomen, omdat dit artikel geeft inzicht alleen voor het creëren van de boom, maar de beschreven structuur heeft geen asymptotische grenzen voor de hoogte. Als, bijvoorbeeld duw je gesorteerde waarden in deze structuur, zal het een verbonden lijst in plaats van een evenwichtige boom zijn.


antwoordde op 12/04/2011 om 21:25
bron van user

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