¿Puede ser transversal el pedido anticipado de dos árboles diferentes aunque sean diferentes?


11

Esta pregunta explica bastante bien que pueden, pero no muestra ningún ejemplo de que haya dos árboles diferentes con el mismo recorrido de preorden.

También se menciona que el recorrido en orden de dos árboles diferentes puede ser el mismo, aunque son estructuralmente diferentes. ¿Hay un ejemplo de esto?


2
Este es un ejercicio muy básico. ¿Qué has intentado y dónde te has atascado?
Raphael

1
Incluso si tiene el postorder, además del preorden, transversal, aún puede obtener diferentes árboles. ¿Por qué el árbol no es únicamente posible con un recorrido previo y posterior al pedido? Puede encontrar un ejemplo en orden en De la representación en orden al árbol binario . También relacionado / duplicado: ¿Qué combinaciones de secuenciación previa, posterior y en orden son únicas?
Dukeling

Respuestas:


28

Ejemplos de árbol (imagen) :

     A:                 B:
     ‾‾                 ‾‾
     1                  1
    /                  / \
   2                  2   3
  /  
 3   

Este es un ejemplo que se ajusta a su escenario, el valor de la raíz del Árbol A es 1, que tiene un hijo izquierdo con valor 2, y su hijo izquierdo también tiene un hijo izquierdo con valor 3.

El valor de la raíz del árbol B es 1, teniendo un hijo izquierdo con valor 2 y un hijo derecho con valor 3.

En ambos casos, el recorrido Preorder es 1-> 2-> 3.


11
Este es en realidad un caso específico de una regla general de que para cualquier árbol de algún orden, hay un árbol lineal de solo hijos izquierdos (o solo derechos) que tiene el mismo orden.
Dancrumb

55
@Dancrumb, que a su vez es un caso específico de una regla general de que para cualquier árbol con N nodos, y para cualquier forma de árbol (= árbol sin etiquetar) con N nodos, hay una forma de etiquetar este último para que comparta el recorrido con el primero Esto es válido para cualquier recorrido (visita previa / posterior / en orden).
chi

8

Supongamos que considera árboles de nodos. Ahora tome cualquier árbol binario con nodos y nombre los nodos de acuerdo con su numeración previa al pedido. Entonces, claramente, la secuencia de preorden del árbol será .nn1,2,,n

Esto significa que podemos nombrar los nodos de cualquier estructura de árbol binario para que genere la misma secuencia de preorden que la de otro árbol dado.

Esto no funcionará si tenemos que asumir otras propiedades del árbol. Por ejemplo, si se supone que el árbol es un árbol de búsqueda binario, con todas las claves diferentes, su secuencia de preorden determinará de manera única el árbol.


8

Argumento de conteo

El número de árboles binarios sin etiqueta de nodos es el número catalánPor ejemplo, hay 5 árboles binarios de 3 nodos,nnthCn=(2n)!/(n!(n+1)!).

    o         o         o         o         o
   /         /         / \         \         \
  o         o         o   o         o         o      .
 /           \                     /           \
o             o                   o             o

Etiquetar estos da un factor deademás de eso, para que el número de árboles binarios etiquetados sean!

(2n)!(n+1)!=2n(2n1)(n+2).

Por el contrario, solo hayrecorridos de un árbol de nodos. ¡Ya que acabamos de multiplicar el primero por, por lo tanto, ningún recorrido puede contener la estructura completa del árbol para tantoY esto en general es válido para cualquier estructura de datos que tenga más de una configuración con nodos sin etiqueta; no necesita conocer este detalle sobre los números catalanes, siempre que sepa que hay al menos dos árboles binarios sin etiqueta de tamaño .n!nn!Cn>1n>1.n


1

Con respecto a su segunda pregunta, sí, dos árboles estructuralmente diferentes pueden tener el mismo recorrido transversal. Un ejemplo de esto es:

     A:                 B:

     1                  2
    / \                  \
   2   3                  1
                           \
                            3

El recorrido transversal de ambos árboles es el mismo. 2 -> 1 -> 3

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.