Hoe verwijder ik van een binaire zoekboom in Lisp

stemmen
1

Hoe kan ik een knoop van een BST te schrappen?

Ik moet een algoritme om dat te doen in Dr. Scheme.

De vraag is gesteld op 07/12/2010 om 09:09
bron van user
In andere talen...                            


2 antwoorden

stemmen
2

Ervan uitgaande dat de binaire zoekboom gebruikt ongecompliceerd cons cellen met inhoud alleen aan de bladeren, en ervan uitgaande dat je werkt aan een huiswerkopdracht: U kunt gebruiken set-car!of set-cdr!om de inhoud van een tegens cel te veranderen.

antwoordde op 07/12/2010 om 14:51
bron van user

stemmen
3

Gooi je in feite de BST je nu hebt, en maak een nieuwe sans het element.

U kunt dit doen door recursief de boom dalen. Als het item is minder dan de wortel gegeven, maak dan een BST waarvan de wortel en groter-dan-tak is gekopieerd van wat je nu hebt, maar waarvan de minder-dan tak is het resultaat van een recursieve aanroep.

Het is zeer vergelijkbaar met hoe je een knooppunt toe te voegen, maar als je naar degene die u op zoek waren, samenvoegen van de twee BSTS eronder en terug te keren het resultaat. Er zijn zeker bestaande vragen over hoe dat nu al te doen.

antwoordde op 08/12/2010 om 03:09
bron van user

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