Sejam [3, 1, 2, 7, 5, 4, 6], [3, 1, 2, 6, 4, 5, 7] e [4, 2, ...

Próximas questões
Com base no mesmo assunto
Q946466 Algoritmos e Estrutura de Dados
Sejam [3, 1, 2, 7, 5, 4, 6], [3, 1, 2, 6, 4, 5, 7] e [4, 2, 1, 3, 6, 5, 7] as sequências produzidas pelo percurso em pré-ordem das árvores binárias de busca T1, T2 e T3, respectivamente, é correto afirmar que é(são) árvore(s) balanceada(s) do tipo AVL (Adelson-Velski e Landis)
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D - T2 e T3.

Para entender a questão, é necessário compreender alguns conceitos fundamentais sobre Árvores Binárias de Busca (BST) e Árvores AVL. Uma árvore AVL é uma árvore binária de busca que se mantém balanceada, ou seja, para qualquer nó da árvore, a diferença de altura entre sua subárvore esquerda e sua subárvore direita é, no máximo, 1.

Vamos analisar as sequências fornecidas para determinar quais das árvores são balanceadas do tipo AVL:

[3, 1, 2, 7, 5, 4, 6]
Essa sequência é obtida de uma árvore binária de busca T1 em pré-ordem. Montando a árvore, temos:

3
  /   \
1      7
  \   /
   2 5
      /  \
     4   6

Observando a estrutura, podemos ver que a subárvore esquerda da raiz (3) tem uma altura de 2, enquanto a subárvore direita tem altura 3. Isso faz com que a árvore T1 não esteja balanceada de acordo com os critérios AVL.

[3, 1, 2, 6, 4, 5, 7]
Essa é a sequência da árvore binária de busca T2 em pré-ordem. Montando-a, temos:

3
  /   \
1      6
  \   /  \
   2 4    7
       \
       5

Verificamos que as alturas das subárvores diferem em, no máximo, 1 para todos os nós, o que satisfaz os critérios AVL. Portanto, T2 é uma árvore AVL.

[4, 2, 1, 3, 6, 5, 7]
Essa é a sequência da árvore binária de busca T3 em pré-ordem. Montando-a, temos:

4
  /   \
2      6
/  \   /  \
1  3  5  7

Novamente, todas as subárvores têm alturas que diferem, no máximo, por 1 para todos os nós. Portanto, T3 também é uma árvore AVL.

Agora, vamos justificar por que as alternativas estão corretas ou incorretas:

A - T1: Incorreta. Como demonstrado, T1 não é uma árvore AVL.

B - T1 e T2: Incorreta. Embora T2 seja AVL, T1 não é.

C - T1 e T3: Incorreta. T3 é AVL, mas T1 não é.

D - T2 e T3: Correta. Ambas as árvores T2 e T3 são balanceadas do tipo AVL.

E - T1, T2 e T3: Incorreta. Apenas T2 e T3 são AVL; T1 não é.

Espero que esta explicação tenha ajudado a entender a questão e os conceitos envolvidos. Se tiver mais dúvidas, estou à disposição!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Não entendi pq a arvore t2 , está na resposta montando sua estrutura e depois percorrendo em pre ordem não consegui chegar a essa ordenação, o t1 realmente nao eh um t1, o t3 em pré-ordem bate certinho. Questão complicada de entender.

Essa questão tá sem coerência. Não tem como dizer que o T2 é uma árvore binária balanceada.

Gabarito, letra D

Primeiramente devemos entender qual a sequência de pré-ordem que seria:

Visitar a raiz;

Percorrer sua subárvore esquerda, em pré-ordem;

percorrer sua subárvore direita, me pré-ordem;

Seguindo a percurso de pré-ordem em árvores binárias (maiores valores para subárvores direita e menores para subárvores esquerda. Lembrando que para ser uma árvore AVL, precisa ser uma árvore binária de busca onde seu Fator de Balanceamento - FB (diferença em altura da subárvore da direita pela esquerda) seja no máximo 1. :

Agora construímos a árvore T1 [3, 1, 2, 7, 5, 4, 6]:

...........................................................3.................................... FB = +1 (3 - 2)

..................................................../.............. \....

FB = +1 (1 - 0)........................1..................7 ......................... FB = -2 (0 - 2)

...................................................\................/....

FB = 0 (folha).............................2............5............................. FB = 0 (1 - 1)

............................................................./..........\...

FB = 0 (folha)...................................4.............6.......................FB = 0 (folha)

Não é uma AVL pois, FB da subárvore 7 > 1

Agora construímos a árvore T2 [3, 1, 2, 6, 4, 5, 7]

...........................................................3.................................. FB = +1 (3 - 2)

..................................................../.............. \...

FB = +1 (1 - 0)........................1...................6 ..................... FB = -1 (1 - 2)

...................................................\............../........\..

FB [2] = 0 (folha)... ....................2.........4............7............... FB [7] = 0 (folha)

FB [4] = +1 (1 - 0)...................................\...

..................................................................5...........................FB = 0 (folha)

É uma AVL pois todas FB das subárvores são no máximo +1

o mesmo se segue para a árvore T3 [4, 2, 1, 3, 6, 5, 7]

...........................................................4................................. FB = 0 (2 - 2)

..................................................../.............\...

FB = 0 (1 - 0)........................2....................6 .................... FB = 0 (1 - 1)

............................................/.......\............../........\..

FB [1,3] = 0 (folhas).........1..........3..........5..........7............... FB [5,7] = 0 (folhas)

fonte: Estrutura de dados e seus algoritmos, Jayme Szwarcfiter. 3ª Ed.

instagram: @papirobizurado

Gabarito = D

Uma árvore binária T é denominada AVL quando, para qualquer nó de T, as alturas de suas duas subárvores, esquerda e direita, diferem em módulo de até uma unidade.

Fonte: Wikipédia

Usem esse simulador, é possível ver claramente que as árvores T2 e T3 estão balanceadas.

https://www.cs.usfca.edu/~galles/visualization/AVLtree.html

Clique para visualizar este comentário

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