Buscar

Ajuda exercício

Questão 4/5 - Estrutura de Dados

Na AULA 4 estudamos a inserção em uma árvore binária. Abaixo temos um código em linguagem C com uma função de inserção na árvore binária, considerando ela como uma Binary Search Tree (BST).

1. void Inserir(ElementoDaArvoreBinaria ** ElementoVarredura, int num) {
2.
3. if (*ElementoVarredura == NULL)
4. {
5.      ElementoDaArvoreBinaria *NovoElemento = NULL;
6.      NovoElemento = (ElementoDaArvoreBinaria *)malloc(sizeof(ElementoDaArvoreBinaria));
7.      NovoElemento->esquerda = NULL;
8.      NovoElemento->direita = NULL;
9.
10.     NovoElemento->dado = num;
11.     *ElementoVarredura = NovoElemento;
12.     return;
13. }
14.
15. if (num < (*ElementoVarredura)->dado)
16. {
17.     Inserir(&(*ElementoVarredura)->esquerda, num);
18. }
19. else
20. {
21.     if (num >(*ElementoVarredura)->dado)
22.     {
23.          Inserir(&(*ElementoVarredura)->direita, num);
24.     }
25. }
26. }

Acerca de árvores binárias e do código acima, assinale a alternativa CORRETA.

  A

Nas linhas 15 a 25 a função testa para qual ramo da árvore irá seguir, direito ou esquerdo, chamando novamente a função de inserção de forma recursiva.

  B

Na linha 3 temos um teste condicional simples que tem como objetivo verificar se a árvore binária está completamente vazia, ou não.

  C

Todo o código colocado entre as linhas 15 e 25 poderiam estar dentro de um SENÃO que faz parte da condicional da linha 4.

  D

Na linha 2 temos a declaração da função, onde o primeiro parâmetro é uma variável que foi declarada com dois asteriscos (**). Deveria ser somente um, pois dois asteriscos não são permitidos na linguagem C.

  E

O uso do um asterisco antes do nome da variável, como na linha 3 por exemplo, significa que queremos manipular o endereço daquela variável.

💡 3 Respostas

User badge image

sarah priscila

letra b

0
Dislike0
User badge image

Andre Smaira

Nesse exercício vamos estudar árvores binárias de busca.
Vamos comentar o código dado para entendê-lo:

1. void Inserir(ElementoDaArvoreBinaria * ElementoVarredura, int num) {
2.
3. if (*ElementoVarredura == NULL) //Se elemento vazio

>

4. {
5. ElementoDaArvoreBinaria *NovoElemento = NULL; //Cria novo
6. NovoElemento = (ElementoDaArvoreBinaria *)malloc(sizeof(ElementoDaArvoreBinaria)); //Aloca memoria
7. NovoElemento->esquerda = NULL; //Esquerdo vazio
8. NovoElemento->direita = NULL; //Direito vazio
9.
10. NovoElemento->dado = num; //Dado a ser inserido
11. *ElementoVarredura = NovoElemento; //Insere o elemento
12. return; //Finaaliza a função
13. }
14.
15. if (num < (*ElementoVarredura)->dado) //Se menor que o atual
16. {
17. Inserir(&(*ElementoVarredura)->esquerda, num); //Insere a esquerda
18. }
19. else
20. {
21. if (num >(*ElementoVarredura)->dado) //Se maior que o atual
22. {
23. Inserir(&(*ElementoVarredura)->direita, num); //Insere a direita
24. }
25. }
26. }


A alternativa A é a correta, como citado nos comentários.
0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais

Outros materiais