A travessia de pré-encomenda de duas árvores diferentes pode ser a mesma, mesmo que sejam diferentes?

11

Essa pergunta explica basicamente que eles podem, mas não mostra nenhum exemplo de haver duas árvores diferentes com o mesmo percurso de pré-encomenda.

Também é mencionado que a travessia em ordem de duas árvores diferentes pode ser a mesma, embora estruturalmente diferentes. Existe um exemplo disso?

Sharan Duggirala
fonte
2
Este é um exercício muito básico. O que você tentou e onde ficou preso?
Raphael
1
Mesmo se você tiver a encomenda posterior, além da travessia pré-encomenda, ainda poderá obter árvores diferentes. Por que a árvore não é possível de forma única com a travessia de pré-encomenda e pós-encomenda? Você pode encontrar um exemplo em ordem em De representação em ordem para árvore binária . Também relacionado / duplicado: Que combinações de sequencialização pré, pós e ordem são únicas?
Dukeling 18/06/19

Respostas:

28

Exemplos de árvores (imagem) :

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

Este é um exemplo que se ajusta ao seu cenário: o valor da raiz da árvore A é 1, tendo um filho esquerdo com o valor 2 e o filho esquerdo também com um filho esquerdo com o valor 3.

O valor da raiz da árvore B é 1, tendo um filho esquerdo com o valor 2 e um filho direito com o valor 3.

Nos dois casos, o percurso de pré-encomenda é 1-> 2-> 3.

royashcenazi
fonte
11
Este é realmente um caso específico de regra geral de que, para qualquer árvore de alguma ordem, existe uma árvore linear de apenas filhos à esquerda (ou à direita) que têm a mesma ordem.
Dancrumb 16/06/19
5
@Dancrumb Que, por sua vez, é um caso específico de regra geral que, para qualquer árvore com N nós e para qualquer formato de árvore (= árvore não rotulada) com N nós, existe uma maneira de rotular esse último para compartilhar o percurso com o antigo. Isso vale para qualquer passagem (visita pré / pós / ordem).
chi
8

nn1,2,...,n

Isso significa que podemos nomear os nós de qualquer estrutura de árvore binária para gerar a mesma sequência de pré-ordem que a de outra árvore.

Isso não funcionará se tivermos que assumir outras propriedades da árvore. Por exemplo, se a árvore deve ser uma árvore de pesquisa binária, com todas as chaves diferentes, sua sequência de pré-ordem determinará exclusivamente a árvore.

Hendrik Jan
fonte
8

Argumento de contagem

nnºCn=(2n)!/(n!(n+1)!).

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

n!

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

n!nn!Cn>1n>1n

CR Drost
fonte
1

Em relação à sua segunda pergunta, sim, duas árvores estruturalmente diferentes podem ter o mesmo percurso interno. Um exemplo é:

     A:                 B:

     1                  2
    / \                  \
   2   3                  1
                           \
                            3

O percurso entre as duas árvores é o mesmo. 2 -> 1 -> 3

Navjot Singh
fonte