Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questão 1/5 - Estrutura de Dados Na AULA 5 estudamos conceitos de grafos. Abaixo temos uma imagem de um grafo. Acerca do grafo acima, assinale a alternativa CORRETA. Nota: 20.0 A O grafo contém arestas múltiplas, pois temos mais de um caminho para sair de V1 e chegar em V9, por exemplo. Arestas múltiplas são para arestas com os mesmos vértices de origem e destino. B O grau do vértice V9 é 3. O grau é 4. Pois é o número de arestas incidentes. C Todos os vértices deste grafo têm o mesmo grau. Temos graus diferentes: 2, 3 e 4. D Este grafo é do tipo completo. No grafo completo, todos os vértices precisam estar conectados entre si por somente uma aresta. Neste grafo faltam diversas conexões. E O grau do vértice V4 é 3. Você acertou! Correto. Pois é o número de arestas incidentes. Questão 2/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. Nota: 20.0 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. Você acertou! Correto. 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. Verifica se AQUELE ELEMENTO está vazio, não a arvore toda; 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. Não seria possível isso, pois as linhas 15 a 25 precisam ser executadas independentemente da condição da linha 3; 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. É permitido e está correto. Porque temos um ponteiro para outro ponteiro, caracterizando dois asteriscos; 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. O asterisco indica o conteúdo indireto para qual o ponteiro aponta. Questão 3/5 - Estrutura de Dados Na AULA 5 estudamos conceitos de grafos. Abaixo temos uma imagem de um grafo. Acerca do grafo acima, assinale a alternativa CORRETA. Nota: 0.0 A O grau do vértice V1 é 3. O grau é 4. Pois é o número de arestas incidentes. B Todos os vértices deste grafo têm o mesmo grau, caracterizando um grafo trivial. Tem o mesmo grau, mas o grafo é chamado de ponderado. C Este grafo é do tipo completo. Sim. Todos os vértices estão conectados por uma e somente uma aresta. D Se removermos qualquer uma das arestas do grafo, estaríamos transformando o grafo em um do tipo completo. O grafo já é completo. Se remover uma aresta qualquer, ele deixa de ser completo. E A aresta que conecta V1 e V3 e V1 E v4 podem ser chamadas de laços. Laço é uma aresta com um só vértice. Questão 4/5 - Estrutura de Dados Na AULA 5 estudamos conceitos de grafos. Acerca de grafos, seus conceitos e suas definições, assinale a alternativa INCORRETA. Nota: 20.0 A Um grafo é uma estrutura de dados que funciona de uma maneira não linear, podendo ser construído sem nenhum padrão definido. B Arestas são linhas de conexão entre grafos. Você acertou! São linhas de conexão entre vértices de um grafo. AULA 5 – TEMA 1. C Podemos mapear um mapa rodoviário como uma malha de vértices e arestas conectadas. D Podemos percorrer um grafo, andando por seus vértices e arestas, de maneira a encontramos os melhores caminhos nele. E Um grafo é composto de vértices e arestas; Questão 5/5 - Estrutura de Dados Na AULA 4 estudamos conceitos de árvores binárias. Acerca de árvores, assinale a alternativa abaixo: 1. ElementoDaArvoreBinaria *NovoElemento = NULL; 2. NovoElemento = (ElementoDaArvoreBinaria *)malloc(sizeof(ElementoDaArvoreBinaria)); 3. NovoElemento->esquerda = NULL; 4. NovoElemento->direita = NULL; 5. 6. NovoElemento->dado = num; 7. *ElementoVarredura = NovoElemento; Acerca de árvores e seus aspectos construtivos, assinale a alternativa INCORRETA. Nota: 0.0 A O código refere a inicialização de um nó da árvore, onde alocamos a variável na memória e inicializamos os campos do registro. Linha 2 contém a alocação, linhas 3, 4 e 5 contém a inicialização. B Baseado no código acima, podemos afirmar com certeza que o registro que armazena cada elemento da árvore contém um dado do tipo inteiro e dois ponteiros. Não sabemos o tipo do dado pelo código acima. C Na linha 2 alocamos uma variável na memória destinada ao programa. O espaço alocado é igual a quantidade de Bytes usada pelo registro ElementoDaArvoreBinaria. Sim. A função malloc em C faz alocação e a função sizeof diz o tamanho a ser alocado. D Na linha 1, a variável NovoElemento é declarada como sendo um ponteiro para um tipo de variável chamado ElementoDaArvoreBinaria. Sim. O asterisco indicará o ponteiro; E Nas linhas 3, 4 e 6 estamos acessando os campos de um registro. Em linguagem C, um campo de uma variável ponteiro é acessado com uma flecha para a direta ‘->’, e não com um PONTO. Se usarmos PONTO neste caso, como por exemplo NovoElemento.esquerda, não irá funcionar. Exatamente;
Compartilhar