Hvordan sletter jeg fra et binært søketre i Lisp

stemmer
1

Hvordan kan jeg slette en node fra et BST?

Jeg trenger en algoritme for å gjøre det i Dr. Scheme.

Publisert på 07/12/2010 klokken 08:09
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Forutsatt din binært søketre bruker rett frem imot celler med innhold bare på bladene, og forutsatt at du jobber med en hjemmelekse: Du kan bruke set-car!eller set-cdr!til å endre innholdet i en ulemper celle.

Svarte 07/12/2010 kl. 13:51
kilden bruker

stemmer
3

Du i utgangspunktet kaste BST du har nå, og opprette en ny sans elementet.

Du kan gjøre dette ved rekursivt ned treet. Dersom varen er mindre enn roten datum, skape en BST hvis rot og større-enn grenen kopieres fra det du har nå, men hvis mindre enn grenen er resultatet fra en rekursive kall.

Det er veldig lik hvordan du legger til en node, men når du kommer til den du søker etter, slå sammen de to BSTs under den og returnere resultatet. Det er sikkert eksisterende spørsmål om hvordan du gjør det allerede.

Svarte 08/12/2010 kl. 02:09
kilden bruker

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