Es un nodo en un árbol considerado su propio ancestro?

votos
4

Me pregunto lo que el consenso es en la definición de ancestro en un contexto de la informática.

Sólo pido porque en Introducción a los algoritmos , segunda edición, p. 259 hay una descripción del algoritmo Tree-Successor(x)que parece extraño. En la búsqueda del sucesor del nodo x ,

[...] si el subárbol derecho del nodo x está vacío y x tiene un sucesor y , a continuación, y es el antepasado más bajo de x cuyo hijo izquierdo es también un antepasado de x .

En un árbol binario de búsqueda con una raíz que tiene llave 2y los niños 1y 3, el sucesor de 1es su padre 2. En este caso, x es el hijo izquierdo de x sucesor 's, y . De acuerdo con la definición del libro, entonces, x debe ser su propio antepasado, a menos que me falta algo.

No he encontrado nada en la fe de erratas sobre esto.

Publicado el 20/06/2010 a las 04:48
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
3

Es un nodo en un árbol considerado su propio ancestro?

Normalmente no, que yo sepa. Por ejemplo, en la página de Wikipedia sobre árboles binarios , ancestro se define así:

Si una ruta existe desde el nodo al nodo p q, donde p nodo está más cerca del nodo raíz que q, entonces p es un antepasado de q y q es un descendiente de p.

Pero al parecer, la definición de ese libro de texto de ancestro es tal que un nodo es su propio antepasado. Esta definición no es exactamente intuitivo, pero un libro de texto es libre de introducir sus propias definiciones de la terminología que utiliza. Tal vez esta definición simplifica algunos de los relacionados con las descripciones / teoremas / etc.

Respondida el 20/06/2010 a las 05:14
fuente por usuario

votos
-1

No, no es un nodo antepasado del mismo. Según yo debería ser: si el subárbol derecho del nodo X está vacío yx tiene un sucesor y, entonces y es el antepasado más bajo de x cuyo hijo izquierdo es either x or an ancestor of x.sino el código dado en el libro supuestamente manejo de este tipo de casos.

Respondida el 20/06/2010 a las 05:23
fuente por usuario

votos
10

Es simplemente una cuestión de definición, pero en este caso, . CLRS definen un antepasado de x como cualquier nodo en el camino único de la raíz a x, que por definición incluye x.

El fragmento de frase que usted cita comienza mencionando el ejercicio 12,2-6 en la página siguiente, que especifica lo siguiente:

(Recordemos que cada nodo es su propio antepasado.)

:-)

Respondida el 20/06/2010 a las 05:33
fuente por usuario

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