DrRacket törlése Root bináris kereső fába

szavazat
1

Felhívjuk figyelmét, hogy házi feladat! -> Én nem keresem a közvetlen kódpéldákat, hanem néhány kedves masszírozása érveim ...

Arra kértek, hogy írjon egy függvényt, amely eltávolítja a gyökér a bináris keresés fát három dolgot: i) forgatjuk a fa jobbra ii) eltávolítjuk a gyökér a jobb részfa (ami az eredeti BST root) iii) újjáépítése a BST a gyökér új (ami a bal oldalon az eredeti fa) és a megfelelő átrendeződések a gyerekek, hogy a csomópont ... Itt van, amit én:

    (define (rm-root my-bst)
      (list (key (rot-r my-bst)) 
            (left (rot-r my-bst)) 
            (append (right (right (rot-r my-bst))) 
                    (left (right (rot-r my-bst))))))

Amely minden nagy, elvár, hogy nem újjáépíteni a fát a gyerekek a csomópont, amelyet „támogatott”, hogy a gyökér. Tud valaki segíteni gondolok, hogy hogyan kell menni a végrehajtó? Meg kell említenem, hogy az általunk megadott Bst-as listákat és a funkció rothadás-r forgatja a BST jobbra. Köszönöm.

A kérdést 12/11/2011 01:07
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Nos, nem vagyok biztos, hogy ez hasznos lesz 12 napon belül a kérdést tették fel, de itt megy.

Ahhoz, hogy tiszta, ezért úgy gondolom, hogy az adatszerkezet a forma (lista gomb balra, jobbra), ahol a bal és jobb is a fák (vagy üres, de ez lényegtelen, hogy ezt). Ha ez nem így van, tisztázása, hogy szükség lenne.

Az egyik probléma a kódban, hogy nem akarja, hogy közvetlenül csatolja a két lista van együtt a jobb oldalon. Azt szeretnénk, hogy egy listát a legfontosabb ezek egyikének, majd a bal és a jobb oldalon. Ha olvasom ezt rendesen, a bal oldali funkciót kell visszatérni egy fa, és így kell működnie.

Azt nézd végrehajtásának rothadás-r helyedben, mint úgy tűnik, hogy a fő lehetősége a dolgok rosszul.

Válaszolt 23/11/2011 07:33
a forrás felhasználó

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