VÆR OPPMERKSOM PÅ AT DETTE ER lekser! -> Jeg er ikke ute etter direkte kode eksempler, men heller noen masser av mitt resonnement ...
Jeg har blitt bedt om å skrive en funksjon som fjerner roten av et binært søketre ved å gjøre tre ting: i) å rotere treet til høyre ii) fjerne roten til høyre subtre (som var den opprinnelige bst root) iii) ombygging BST med den nye root (som var venstre for den opprinnelige treet) og de aktuelle rearrangements barns at node ... Her er hva jeg har:
(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))))))
Som er alt flott, forventer for at det ikke gjenoppbygge treet med barn noden som ble forfremmet til rotnoden. Kan noen hjelpe meg til å tenke på hvordan jeg skal gå om å gjennomføre det? Jeg bør nevne at vi har definert Bst er så lister og at funksjonen råte-r roterer bst til høyre. Takk skal du ha.













