Jak vymažu z binárního vyhledávacího stromu v Lispu

hlasů
1

Jak mohu odstranit uzlu z BST?

Musím algoritmus k tomu, že v dr schématu.

Položena 07/12/2010 v 09:09
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Za předpokladu, že váš strom binárního vyhledávání používá přímočará zápory buněk s obsahem pouze v listech, a za předpokladu, že se pracuje na domácí úkol: Můžete použít set-car!nebo set-cdr!změnit obsah zápory buňky.

Odpovězeno 07/12/2010 v 14:51
zdroj uživatelem

hlasů
3

Ty v podstatě hodit BST máte teď, a vytvořit nový sans prvku.

To lze provést rekurzivně sestupně stromu. Pokud váš položka je menší než kořenový vztažný bod, vytvořit BST, jehož kořen a větší než větev je kopírována z toho, co máte nyní, ale jejíž méně než pobočka je výsledek rekurzivní volání.

Je to velmi podobné tomu, jak přidat uzel, ale když se dostanete do té, kterou hledali, sloučit dva BSTs pod ním a vrátí výsledek. Existuje jistě stávající otázky o tom, jak to udělat už.

Odpovězeno 08/12/2010 v 03:09
zdroj uživatelem

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