DrRacket eliminación de raíz de un árbol de búsqueda binaria

votos
1

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.

Publicado el 12/11/2011 a las 01:07
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Bueno, no estoy seguro de que esto será útil 12 días después de que se hizo la pregunta, pero aquí va.

Para que quede claro, supongo que la estructura de datos es de la forma (tecla de lista de la izquierda a la derecha), donde la izquierda y la derecha son también los árboles (o vacíos, pero eso es irrelevante para esto). Si este no es el caso, sería necesario aclarar eso.

Uno de los problemas en su código es que usted no desea anexar directamente las dos listas que tienen juntos por la derecha. ¿Quieres hacer una lista con la clave de uno de ellos, y luego a la izquierda y la derecha. Si estoy leyendo esto correctamente, la función de la izquierda debería devolver un árbol y, por tanto, debería funcionar bien.

Me gustaría comprobar la aplicación de la podredumbre-r si fuera usted ya que parece ser la principal posibilidad de que las cosas van mal.

Respondida el 23/11/2011 a las 07:33
fuente por usuario

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