Cum pot șterge dintr-un arbore binar de căutare în Lisp

voturi
1

Cum pot șterge un nod dintr-un BST?

Am nevoie de un algoritm pentru a face acest lucru în Schema dr.

Întrebat 07/12/2010 la 09:09
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
2

Presupunând că arborele binar de căutare utilizează drept înainte celule contra cu conținut numai la frunze, și presupunând că se lucrează la o temă pentru acasă: Puteți folosi set-car!sau set-cdr!pentru a modifica conținutul unei celule contra.

Publicat 07/12/2010 la 14:51
sursa de către utilizator

voturi
3

Tu arunci practic BST aveți acum, și de a crea un nou unul sans element.

Puteți face acest lucru prin descendent recursiv copac. Dacă elementul este mai mică decât datum rădăcină, a crea un BST a cărui rădăcină și-o mai mare decât ramura este copiat din ceea ce ai acum, dar ale căror mai puțin decât ramura este rezultatul dintr-un apel recursiv.

Este foarte similar cu modul în care adăugați un nod, dar când ajungi la cel pe care îl au fost căutați, fuzioneze cele două BSTs sub el și să se întoarcă rezultatul. Există întrebări cu siguranță existente cu privire la modul de a face acest lucru deja.

Publicat 08/12/2010 la 03:09
sursa de către utilizator

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