Prévia do material em texto
CURSO: CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS AVALIAÇÃO » NOVO Atenção. Este gabarito é para uso exclusivo do aluno e não deve ser publicado ou compartilhado em redes sociais ou grupo de mensagens. O seu compartilhamento infringe as políticas do Centro Universitário UNINTER e poderá implicar sanções disciplinares, com possibilidade de desligamento do quadro de alunos do Centro Universitário, bem como responder ações judiciais no âmbito cível e criminal. � Nota: 40 Disciplina(s): Estrutura de Dados Data de início: 26/04/2019 15:51 Prazo máximo entrega: 26/04/2019 16:51 Data de entrega: 26/04/2019 16:45 Questão 1/12 - Estrutura de Dados Uma função que implementa o algoritmo bubble sort pode ser vista abaixo. Todo o resto do algoritmo foi omitido para que analisemos somente o método de ordenação. No código, TAMANHOVETOR refere a um valor inteiro que corresponde a dimensão do vetor de dados. 1 - void BubbleSort(int vet[]) { 2 - int aux; 3 - for (int n = 1; n <= TAMANHOVETOR; n++) { 4 - for (int i = 0; i < (TAMANHOVETOR - 1); i++) { 5 - if (vet[i] < vet[i + 1]) { 6 - aux = vet[i]; 7 - vet[i] = vet[i + 1]; 8 - vet[i + 1] = aux; 9 - } } } } Acerca deste algoritmo, assinale a alternativa CORRETA: Nota: 10.0 A Na linha 5, o sinal de MENOR está incorreto. O algoritmo do bubble sort deve apresentar um sinal de MAIOR nesta linha. B Não é possível substituir os laços de repetição do tipo PARA (FOR) por um laço do tipo REPITA (DO-WHILE). C Não é possível substituir os laços de repetição do tipo PARA (FOR) por um laço do tipo ENQUANTO (WHILE). D Na linha 3, seria possível fazer a variável n iniciar em zero e terminar em (TAMANHOVETOR-1) E A variável chamada de aux neste código tem como objetivo armazenar temporariamente o vetor de dados completo, para posteriormente ser ordenado. Questão 2/12 - Estrutura de Dados Na AULA 5 estudamos a árvore binária balanceada AVL. Observe um exemplo de árvore AVL abaixo: Suponha que você quer remover o nó folha de valor 99. Acerca do balanceamento e rotação desta árvore sem o 99. Assinale a alternativa CORRETA: Nota: 10.0 A A árvore ficará balanceada e não precisará de rotação nenhuma. B A árvore ficará com um desbalanceamento de valor 2 na raiz. C O nó filho de valor 80 está com balanceamento 0, resultando em uma rotação simples para a direta. D A árvore está com um desbalanceamento de valor -2 na raiz, resultando em uma rotação simples para a esquerda. E O nó filho de valor 80 está com balanceamento 1, resultando em uma dupla com filho para a esquerda e pai para a direita. Questão 3/12 - Estrutura de Dados Na AULA 5 estudamos grafos e o algoritmo de caminho mínimo. Acerca do algoritmo de caminho mínimo Djikstra, assinale a alternativa CORRETA. Nota: 0.0 A Este algoritmo só é capaz de definir um menor caminho caso grafo seja ponderado. B O Djikstra só é capaz de definir a melhor rota seguindo uma métrica denominada de aditiva. C Quando não existe um caminho entre dois vértices, representamos como se a rota entre eles no vetor de distâncias tem um peso infinito (variável de valor extremamente alto). D O caminho de um vértice V0 até um vértice V2, passando por um vértice V1, utilizando métrica aditiva, será a soma dos pesos de V0 para V1 e V0 para V2. E O vértice de origem sempre terá um caminho infinito para si próprio. Questão 4/12 - Estrutura de Dados No terceiro assunto de nossa disciplina estudamos estruturas de dados que se comportam como uma PILHA. Acerca de PILHA, assinale a alternativa INCORRETA: Nota: 0.0 A Em uma pilha construída utilizando listas encadeadas. Desempilhar nela significa remover o primeiro elemento desta pilha. B Uma pilha pode só pode ser construída empregando uma estrutura de dados que trabalhe de maneira não sequencial. C Uma pilha trabalha com inserção e remoção no topo da pilha. Sendo impossível manipular qualquer outra posição da pilha. D Em uma pilha construída utilizando listas encadeadas. Empilhar nela significa inserir antes do primeiro elemento desta pilha. E Em uma, a cada nova inserção, os elementos anteriores vão ficando para o final da pilha, só sendo possível removê-los desempilhando. Questão 5/12 - Estrutura de Dados Na AULA 5 estudamos conceitos de grafos. Acerca de grafos e seus aspectos construtivos, assinale a alternativa INCORRETA. Nota: 10.0 A Um laço ocorre quando uma aresta está conectada em um só vértice. B Um grafo completo é aquele que contém uma, e somente, aresta para cada par distinto de vértices. C Um grafo ponderado é aquele no qual todas suas arestas contém um peso. D Um grafo trivial é aquele que apresente somente um vértice e uma aresta; E Encontramos arestas múltiplas em um grafo quando duas arestas conectam os mesmos vértices; Questão 6/12 - Estrutura de Dados No último tópico da AULA 2 vimos algoritmos de busca. Acerca de algoritmos de busca sequencial e binária, assinale a alternativa INCORRETA: Nota: 10.0 A Uma busca binária pode ser implementada utilizando o princípio de dividir para conquistar, e portanto, complexidade O(n²). B A busca binária só funcionará com um vetor de dados já ordenado. Portanto, além de sua complexidade, existe a complexidade atrelada a uma possível ordenação prévia dos dados. C O algoritmo de busca sequencial pode ser implementado com um só laço de repetição, caracterizando O(n). D A busca sequencial poderá funcionar com um conjunto de dados ordenação ou não ordenado. E A busca binária realiza seu algoritmo de localização do dado dividindo o conjunto de dados ao meio, e comparando o valor central com o buscado. Questão 7/12 - Estrutura de Dados No terceiro assunto da disciplina estudamos a estrutura de dados do tipo lista encadeada. O código abaixo representa cada elemento de uma lista duplamente encadeada. 1. registro ElementoDaLista_Dupla 2. dado: inteiro 3. prox: ElementoDaLista[->) 4. ant: ElementoDaLista[->) 5. fimregistro Acerca de lista encadeadas duplas, assinale a alternativa INCORRETA: Nota: 0.0 A O código de criação da estrutura de uma lista encadeada dupla, conforme apresentado acima, é igual para uma circular e uma não circular. B O código acima representa uma lista não circular, pois uma lista dupla e circular deveria conter um ponteiro para o próximo elemento da lista, outro ponteiro para o elemento anterior da lista e também um ponteiro para o primeiro elemento da lista. C O código acima pode representar uma lista encadeada dupla não circular, pois conterá um ponteiro para o próximo elemento da lista e um para o elemento anterior da lista. D Se removermos a linha 4, transformamos a lista encadeada dupla em uma simples. E Um inserção no final da lista encadeada e circular, significaria fazer com o que o novo elemento inserido no final tivesse seu ponteiro para o próximo elemento apontando de volta para o início da lista encadeada. Questão 8/12 - Estrutura de Dados A recursividade é um recurso de programação bastante empregado, e consiste no ato de uma função em um código realizar chamadas de si mesmo, abrindo diferentes instâncias de uma mesma função na memória do programa. Acerca de recursividade e algoritmos recursivos, assinale a alternativa INCORRETA: Nota: 0.0 A Diversos problemas computacionais que poderiam ser resolvidos utilizando algoritmos iterativos, ou seja, laços de repetição, podem também ser resolvidos usando recursividade. B Um algoritmo recursivo terá uma complexidade logarítmica, apresentando um desempenho inferior em tempo de execução superior a um algoritmo construído de forma iterativa. C Uma possível desvantagem de um algoritmo recursivo é o seu uso de memória mais elevado, uma vez que diversas instâncias de uma mesma função precisam ser alocadas na memória. D Um algoritmo que executa uma funçãodenominada de soma, e que realiza a chamada de uma função denominada compara, não pode ser considerado um algoritmo recursivo, uma vez que não realizada chamadas de si mesma. E Um algoritmo recursivo comumente serve para resolver problemas do tipo “dividir para conquistar”, onde dividimos um problema em partes menores e mais fáceis de solucionar, para posteriormente agregar as pequenas soluções em uma maior. Questão 9/12 - Estrutura de Dados Na AULA 5 estudamos conceitos de grafos. Acerca de grafos, seus conceitos e suas definições, assinale a alternativa INCORRETA. Nota: 0.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. 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 10/12 - Estrutura de Dados Na AULA 5 estudamos grafos e seus algoritmos de busca. Acerca da busca em profundidade no grafo, assinale a alternativa INCORRETA. Nota: 0.0 A A busca em profundidade trabalha com o uma pilha que mantém todos os vértices que ainda não tiveram todos os seus vizinhos visitados nela. B A busca em profundidade pode ser implementada com qualquer tipo de representação de grafos: matriz ou lista. C Uma variável mantém salvo todos os vértices já visitados, pois podemos passar somente uma vez por cada vértice. D Um vértice, quando visitado pela primeira vez, tem sua lista de vizinhos acessada imediatamente e seu número é colocado na pilha. E Um vértice sai da pilha quando o algoritmo pula para o próximo vizinho deste vértice. Questão 11/12 - Estrutura de Dados (questão opcional) 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: Nota: 0.0 A Uma lista encadeada dupla só permite a inserção no início desta lista. B Uma lista encadeada dupla conterá, em cada elemento, dois ponteiros de endereços. Um endereço corresponderá ao primeiro elemento da lista e o outro endereço ao último elemento da lista. 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. D Os dados de uma lisa dupla podem ser acessados mais rapidamente que uma simples, devido ao emprego de um ponteiro a mais. E Uma lista encadeada dupla ocupa o dobro de memória do programa em relação a uma lista simples, pois precisa armazenar duas vezes os dados de cada elemento. Questão 12/12 - Estrutura de Dados (questão opcional) Na AULA 6 estudamos endereçamento aberto de tabelas hash com tentativa linear e tentativa quadrática. Acerca da tentativa linear e da tentativa quadrática, assinale a alternativa INCORRETA: Nota: 0.0 A Na tentativa linear, quando uma colisão ocorre, a próxima posição livre, subsequente, é acessada. B Na tentativa quadrática, quando uma colisão ocorre, a primeira posição a ser testada após a colisão é sempre a posição seguinte do vetor. C Na tentativa quadrática, quando uma colisão ocorre, a nova tentativa é feita em uma posição que está a uma distância d da posição originalmente testada. Onde d será sempre o dobro da posição originalmente testada. D A função hash adotada independe do tipo de tentativa empregado (linear ou quadrática). E A tentativa quadrática tende a espalhar mais as chaves colididas na tabela hash. Tanto faz o sinal. Invertendo sinal inverte a forma como irá ordenar, o que não caracteriza um erro.� É possível implementar com qualquer laço de repetição.� É possível implementar com qualquer laço de repetição.� Você acertou! CORRETO. AULA 2 – TEMA 2 e conceitos básicos de programação e algoritmos. � Ela serve para ajudar na troca individual de cada elemento.� Você acertou! Raiz -> Desbalanceada = -2. Filho da esquerda -> Balanceado = 0 Rotação simples para a direita � Podemos usar um grafo ponderado, mas isso não é obrigatório. Caso ele não seja ponderado, significa que todas as arestas terão peso um, e caso a métrica seja aditiva, teremos que o menor caminho será o menor número de saltos possíveis. � Podemos usar diferentes métricas. A aditiva é a mais comum.� Correto. AULA 5 – TEMA 4.� Será a soma de V0 para V1 e V2 para V2.� O vértice de origem para ele mesmo será peso zero do caminho.� Sim. Remoção no topo.� Podemos construir com vetores (sequencial) ou listas (não sequencial).� Sim. Estrutura do tipo FILO.� Sim. Inserção no topo.� Sim. FILO.� Você acertou! Somente um vértice e nenhuma aresta. AULA 1 – TEMA 1. � Você acertou! O(logn) � Não existe o ponteiro para o primeiro elemento. Somente o ultimo elemento aponta de volta para o primeiro.� AULA 1 – TEMA 4. O desempenho em tempo de execução é superior.� São linhas de conexão entre vértices de um grafo. AULA 5 – TEMA 1.� Um vértice só sai da pilha quando é localizado o elemento que contém um ponteiro nulo da sua lista encadeada de vizinhos. � Permite em qualquer posição.� Um endereço é do elemento imediatamente subsequente e do anterior, e não do primeiro e último.� CORRETO.� Os ponteiros nada impactam no tempo de acesso da lista.� O fato de existir um ponteiro a mais não impacta significativamente a ponto de dobra o uso de memória.� O cálculo de d não é o dobro. A equação é apresentada na página 20 da AULA 6.� ESTRUTURA DE DADOS