Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questão 1/12 - Estrutura de Dados O segundo assunto de nossa disciplina diz respeito a algoritmos de ordenação de dados. Acerca deste assunto, assinale a alternativa INCORRETA: E A lógica algorítmica de cada método de ordenação difere para cada tipo de estrutura de dados que se deseja manipular. Questão 2/12 - Estrutura de Dados Na AULA 4 estudamos as diferentes consultas em árvores binárias. Observe o código de consulta em ordem na árvore, assumindo que os dados cadastrados são do tipo inteiro. 1. void Consultar_EmOrdem(ElementoDaArvoreBinaria * ElementoVarredura) 2. { 3. if (ElementoVarredura) 4. { 5. Consultar_EmOrdem(ElementoVarredura->esquerda); 6. printf("%d\t", ElementoVarredura->dado); 7. Consultar_EmOrdem(ElementoVarredura->direita); 8. } 9. } Acerca de consulta em árvore e do código acima, alternativa CORRETA. E Se quiséssemos imprimir os elementos da árvore de maneira decrescente, ou seja, do maior para o menor, poderíamos trocar as linhas 5 e 7. Questão 3/12 - 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. Questão 4/12 - Estrutura de Dados Uma implementação do algoritmo de ordenação do tipo bubble sort pode ser visto abaixo. As partes que envolvem impressão de dados na tela e leitura de dados foram omitidas para um melhor entendimento do que é necessário na questão. X[TAMANHOVETOR], i, j, aux: inteiro para i de 1 até TAMANHOVETOR faça para j de 0 até (TAMANHOVETOR - 2) faça se (X[j] > X[j + 1]) então aux <- X[j] X[j] <- X[j + 1] X[j + 1] <- aux fimse fimpara fimpara Acerca deste algoritmo, assinale a alternativa CORRETA: B As linhas de código que correspondem a troca dos valores usando uma variável auxiliar poderiam ser também escritas da seguinte maneira: aux <- X[j+1] X[j+1] <- X[j] X[j] <- aux Questão 5/12 - Estrutura de Dados No terceiro assunto da disciplina estudamos a estrutura de dados do tipo lista encadeada. O código abaixo representa a inserção em uma lista encadeada. 1. NovoElemento->dado = numero 2. se (Head == NULO) então 3. Head = NovoElemento 4. Head->prox = NULO 5. Senão 6. NovoElemento->prox = Head 7. Head = NovoElemento 8. fimse Considerando que NovoElemento é um novo elemento que será inserido nesta lista e Head caracteriza o primeiro elemento da lista. Assinale a alternativa CORRETA sobre este algoritmo. C O algoritmo apresentado representa uma inserção no início de uma lista encadeada simples, pois a linha 6 mostra o novo elemento apontando para o Head. Questão 6/12 - Estrutura de Dados No terceiro assunto de nossa disciplina estudamos uma nova estrutura de dados denominada de LISTA ENCADEADA. Um tipo de lista encadeada é a chamada de LISTA ENCADEADA DUPLA, ou LISTA DUPLAMENTE ENCADEADA. Acerca de listas encadeadas simples, assinale a alternativa CORRETA: C Uma lista encadeada dupla circular conterá em seu último elemento, o endereço do primeiro elemento da lista. E conterá no seu primeiro elemento, o endereço do último elemento da lista. Fechando dois círculos. Questão 7/12 - Estrutura de Dados No terceiro assunto de nossa disciplina estudamos uma nova estrutura de dados denominada de LISTA ENCADEADA. Acerca de listas encadeadas, assinale a alternativa CORRETA: D Podemos localizar o próximo elemento da lista encadeada através do uso de uma variável que armazena o endereço do próximo elemento da lista. Questão 8/12 - 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. 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. Questão 9/12 - Estrutura de Dados Na AULA 6 estudamos a estrutura de dados do tipo hash. Acerca de hashs, vetores e tipos de endereçamento, assinale a alternativa INCORRETA. D O acesso a qualquer dado de um vetor com endereçamento direito é realizado com O(1), bem como o tempo de busca de uma informação neste vetor. Questão 10/12 - Estrutura de Dados No terceiro assunto de nossa disciplina estudamos estruturas de dados que se comportam como uma FILA. Acerca de FILAS, assinale a alternativa CORRETA: D Em uma fila trabalhamos com o conceito de: “o primeiro que entra é o primeiro que sai”. Questão 11/12 - Estrutura de Dados (questão opcional) Na AULA 5 estudamos conceitos de grafos. Abaixo temos uma imagem de um grafo. Acerca do grafo acima, assinale a alternativa CORRETA. C Este grafo é do tipo completo. Questão 12/12 - Estrutura de Dados (questão opcional) O algoritmo de ordenação por intercalação, também conhecido como merge sort, é um dos algoritmos estudados na AULA 2. Acerca deste algoritmo, assinale a alternativa CORRETA. D A intercalação é realizada utilizando um vetor auxiliar para ir armazenando os dados que vão sendo ordenados naquele momento.
Compartilhar