¿Cómo se elimina de un árbol binario de búsqueda en Lisp

votos
1

¿Cómo puedo eliminar un nodo de un BST?

Necesito un algoritmo para hacer que en el Dr. Esquema.

Publicado el 07/12/2010 a las 09:09
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
2

Asumiendo que su árbol de búsqueda binaria utiliza sencillo cons cells con contenido sólo en las hojas, y suponiendo que se está trabajando en una tarea: Puede utilizar set-car!o set-cdr!cambiar el contenido de una celda contras.

Respondida el 07/12/2010 a las 14:51
fuente por usuario

votos
3

Es, básicamente, tirar del BST que tiene ahora, y crear uno nuevo sans el elemento.

Usted puede hacer esto en descendente del árbol. Si su artículo es menor que el dato de la raíz, crear un BST cuya raíz y mayor que la rama se copia de lo que tiene ahora, pero cuya rama menos-que es el resultado de una llamada recursiva.

Es muy similar a cómo se agrega un nodo, pero cuando se llega a la persona que estaba buscando, fusionar las dos BSTs debajo de él y devolver el resultado. Hay preguntas sin duda existentes sobre cómo hacerlo ya.

Respondida el 08/12/2010 a las 03:09
fuente por usuario

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