Percurso in-order (em ordem) numa árvore binária

O percurso in-order de uma árvore é um procedimento recursivo, em que primeiro se visita a subárvore esquerda de um nó, depois o próprio nó e, por fim, a subárvore direita:

  1. Visitar a subárvore esquerda (node.left)

  2. Visitar o nó atual

  3. Visitar a subárvore direita (node.right)

É como se pendurássemos a árvore binária pela raiz e lêssemos os valores da esquerda para a direita.

Dada uma árvore binária, pretende-se realizar o percurso in-order sobre ela.

Entrada

A input contém inteiros separados por espaços, representando os valores dos nós da árvore binária. A ordem dos valores segue sempre o percurso da subárvore esquerda antes da subárvore direita. Um valor 0 significa que o nó não existe. Garante-se que a árvore binária dada é válida.

Saída

O programa deve imprimir os valores dos nós da árvore binária ao realizar o percurso in-order, separados por um espaço.

Exemplos

Entrada

Saída

1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0

8 4 9 2 5 1 6 3 7

1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0

8 4 2 5 1 6 3 7

1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0

4 2 5 1 6 3 8 7 9

1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0

4 2 7 5 8 1 3 6

Explicação

  1. Exemplo 1:

    profound.academy-Binary-tree-5.drawio (1).png
  1. Exemplo 2:

    profound.academy-Binary-tree-6.drawio (1).png
  1. Exemplo 3:

    profound.academy-Binary-tree-3.drawio (3).png
  1. Exemplo 4:

    profound.academy-Binary-tree-4.drawio (4).png

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue