POR FAVOR QUE ESTO ES TAREA! -> No estoy en busca de ejemplos de código directos, sino más bien un poco de masaje suave de mi razonamiento ...
Se me ha pedido que escriba una función que elimina la raíz de un árbol binario de búsqueda haciendo tres cosas: i) hacer girar el árbol a la derecha ii) eliminar la raíz del subárbol derecho (que era la raíz BST originales) iii) la reconstrucción el BST con la nueva raíz (que era la izquierda del árbol original) y los reordenamientos apropiadas de los hijos de ese nodo ... Esto es lo que tengo:
(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))))))
Que es todo muy bien, esperar a que no vuelve a generar el árbol con los hijos del nodo que fue impulsada al nodo raíz. ¿Puede alguien me ayude a pensar acerca de cómo debería ir sobre la aplicación de esa? Debo mencionar que hemos definido de Bst como listas y que la función rot-r rota la BST a la derecha. Gracias.













