Uma árvore binária cujos nós armazenam números inteiros pode...

Próximas questões
Com base no mesmo assunto
Q892476 Programação

Uma árvore binária cujos nós armazenam números inteiros pode ser representada na linguagem Python por uma lista com três elementos:


• o primeiro representa a informação armazenada no nó (número inteiro);

• o segundo é uma lista que representa a subárvore esquerda;

• o terceiro é uma lista que representa a subárvore direita.


As variáveis a seguir representam os nós de uma árvore binária construída segundo a estrutura acima descrita. Os nós n3, n4 e n6 são as folhas; n1, n2 e n5 são os nós intermediários; e n0 é o nó raiz.


n6=[4,[],[]]

n5=[6,[],n6]

n2=[8,n5,[]]

n3=[5,[],[]]

n4=[9,[],[]]

n1=[7,n3,n4]

n0=[3,n1,n2]


Seja o seguinte programa Python:


Imagem associada para resolução da questão


O que será exibido no console quando ele for executado?

Alternativas

Comentários

Veja os comentários dos nossos alunos

     

                                                         N0

                                                     /            \

                                                  N1             N2

                                              /         \               \

                                         N3             N4             N5

                                                                                   \

                                                                                       N6 

Contagem das Folhas

int contarFolhas(No *pRaiz){

if(pRaiz == NULL)

return 0;

if(pRaiz->esquerda == NULL && pRaiz->direita == NULL)

return 1;

return contarFolhas(pRaiz->esquerda) + contarFolhas(pRaiz->direita);

}

alguém pode expilcar isso???? não entendo nada.

OR XOR NOR AND

A arvore é como o Bruno mostrou:

                                                         N0

                                                     /            \

                                                  N1             N2

                                              /         \               \

                                         N3             N4             N5

                                                                                   \

                                                                                       N6 

 

Aí o programa vai chamar na ordem que estão dispostas nos vetores. Então será:

 

1) N0 -> N1 -> N3 (mostra valor de N3)

2) Volta pra N1 -> N4 (mostra valor de N4)

3) Volta pra N1 -> (mostra valor de N1)

4) Volta pra N0 -> N2 -> N5 -> N6 (mostra valor de N6)

5) Volta pra N5 (mostra valor de N5)

6) Volta pra N2 (mostra valor de N2)

7) Volta pra N0 (mostra valor de N0)

fim.

 

O segredo da questão está na ordem do percurso da árvore. O percurso é o Pós-Ordem (Esquerda, Direita, Raiz)

 

Obs.: utilize a árvore do Bruno Torregiani 

 

- Ele passa como parâmetro da lista o n0. lista(n0)

- n0[3, n1, n2], ou seja 3(RAIZ), n1(Esquerda), n2(Direita)

- Com as premissas apresentadas, ja temos que o nó a ser impresso é n3(valor 5) e o último nó é a raiz n0(valor 3)

- a única alternativa que contempla as presmissas é a C (5 9 7 4 6 8 3)

 

 

@papirobizurado

 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo