Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: ESTRUTURA DE DADOS Aluno(a): Acertos: 10,0 de 10,0 05/04/2022 1a Questão Acerto: 1,0 / 1,0 A que estrutura pertence a definição: " Uma estrutura não linear que é um conjunto de nós e suas conexões entre eles e não há limitação de vértices. Muito utilizada para representação de percursos em mapas." structs listas encadeadas filas encadeadas pilhas encadeadas grafos Respondido em 05/04/2022 09:20:42 2a Questão Acerto: 1,0 / 1,0 Uma função possui um valor de retorno inteiro, recebe por valor um inteiro como primeiro parâmetro e por referência um inteiro como segundo parâmetro. Qual das respostas abaixo poderia representar o protótipo dessa função: void func (int a, int &b); int func (&int, int); int func (int a, int &b); int func (int &a, int b); void func (int &a, int &b); Respondido em 05/04/2022 09:25:59 Gabarito Comentado 3a Questão Acerto: 1,0 / 1,0 Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção. void ordena(int v[], int n){ int i, j, menor, aux; for (j = 0; j < n-1; j++) { for (i = j+1; i < n; i++) { if (v[i] < v[j]) { aux = v[j]; v[j] = v[i]; v[i] = aux; } } } } void ordena (int v[], int n){ int i, j, aux; for (j = 1; j < n; j++) for (i=j; i > 0 && v[i-1]> v[i]; i--){ aux = v[i-1]; v[i-1] = v[i]; v[i] = aux; } } int ordena(float v[], float valor, int n){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } int ordena(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim){ meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } int ordena(float v[], float valor, int n) { int ini = 0, fim = n-1, meio; while (ini >= fim){ meio = ini/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } Respondido em 05/04/2022 09:28:18 Explicação: Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do vetor e colocamos ele em vetor. Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor ordenado. Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo elemento i atual. É o que está ocorrendo na primeira opção! Gabarito Comentado 4a Questão Acerto: 1,0 / 1,0 Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. Marque a alternativa correta que cita o algoritmo cuja descrição é: "considera cada elemento uma vez inserindo-o em seu lugar correto entre os elementos que já estão em ordem". E o seu passo a passo pode ser descrito como: "o elemento é inserido entre os ordenados movendo-se os elementos maiores que ele uma posição para a direita e posteriormente inserindo-o na posição vaga". Seleção Inserção MergeSort Bolha QuickSort Respondido em 05/04/2022 09:18:12 Gabarito Comentado 5a Questão Acerto: 1,0 / 1,0 Considere as seguintes afirmações sobre Listas Sequenciais: I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse. II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados armazenados. III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da mesma. IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição). Marque a opção que contém apenas todas as afirmações verdadeiras: I, II, IV I, II, III I, III, IV I, II I, II, III, IV Respondido em 05/04/2022 09:33:11 Explicação: Analisando cada afirmativa : I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse. Verdadeiro. As inserções vão ocorrendo do início do vetor (índice zero) em direção ao fim. II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados armazenados. Verdadeiro. Armazenam-se os dados e controla-se a quantidade de dados na lista. III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da mesma. Falso. A inserção pode ser no início, no meio ou no final da lista. Na verdade, pode ocorrer inserção e remoção em qualquer posição. IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição). Verdadeiro. Uma lista pode ou não ter dados repetidos. Resposta certa : As afirmativas I, II, IV estão certas 6a Questão Acerto: 1,0 / 1,0 É uma Lista Linear Ordenada em que as inserções e remoções seguem o critério LIFO (Last In First Out), ou seja, o último a entrar será o primeiro a sair. Estamos falando do(a) __________________________ . Árvore PILHA Fila Circular FILA Busca de Alocação de Memória Respondido em 05/04/2022 09:34:01 Explicação: Por definição, a estrutura de dados pilha é uma lista ordenada em que as inserções e remoções seguem a lógica LIFO. 7a Questão Acerto: 1,0 / 1,0 Para organizar o acesso dos processos que demandam recursos do computador (uso da CPU, acesso ao disco rígido e a outros dispositivos de Entrada e Saída), o Sistema Operacional gerencia essas demandas colocando os processos requisitantes em: Árvores Structs Filas Listas Pilhas Respondido em 05/04/2022 09:34:52 Explicação: Um exemplo de aplicação de fila : fila de processos para CPU. O primeiro processo a chegar fará uso da CPU. O mesmo para os dispostivos de I/O. 8a Questão Acerto: 1,0 / 1,0 E C++, quando um ponteiro é declarado para uma struct, o acesso aos campos deste registro (struct) se dá pelo operador : -> (seta). ∙ (ponto). * (asterisco). & (e comercial ou eitza). , (vírgula). Respondido em 05/04/2022 09:39:42 Explicação: Por definição, o operador é o seta, pois se tem, no caso, ponteiro para struct. 9a Questão Acerto: 1,0 / 1,0 Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site a definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX nas opções abaixo depois que analisar a função, assumindo que teste foi realizado, permitindo que a operação fosse realizada. struct nodo { int info; struct nodo *prox; }; nodo* XXX(nodo *ptr, int valor) { nodo *temp = new nodo; ... temp->info = valor; temp->prox = ptr; return temp; } InsereNoFrente RemoveNo ListaNo InsereNoFim BuscaNaLista Respondido em 05/04/2022 09:40:03 Gabarito Comentado 10a Questão Acerto: 1,0 / 1,0 Assinale a alternativa que traz uma afirmação incorreta sobre as diversas implementações da estrutura de dados lista.A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente, possuir um ponteiro para o nó anterior e outro para o nó seguinte, permitindo movimentação para frente e para trás. A lista circular é toda lista, independente do tipo de alocação, em que é formado um ciclo entre seus elementos. Por exemplo, quando o último elemento da lista aponta para o primeiro. Listas encadeadas em geral são preferíveis em relação às listas sequenciais, especialmente por serem mais eficientes e sempre utilizarem menos espaço de armazenamento na memória. A lista simplesmente encadeada é adequada para a resolução de problemas em que os elementos da lista devem ser percorridos em apenas uma direção. A lista sequencial deve ser implementada com o uso de estruturas de vetor, pois essas essas estruturas utilizam o conceito de alocação estática e dispõem seus elementos de forma contígua na memória. Respondido em 05/04/2022 09:41:23 Explicação: Analisando cada item. >> A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente, possuir um ponteiro para o nó anterior e outro para o nó seguinte, permitindo movimentação para frente e para trás. Afirmativa correta, que segue a definição de lista duplamente encadeada. Não marcar o item. >> A lista simplesmente encadeada é adequada para a resolução de problemas em que os elementos da lista devem ser percorridos em apenas uma direção. Afirmativa correta. Em uma lista simplesmente encadeada existe ponteiro para o início da lista. Por isso, não dá para percorrer tal lista do fim para o início. Nâo marcar o item. >> A lista sequencial deve ser implementada com o uso de estruturas de vetor, pois essas essas estruturas utilizam o conceito de alocação estática e dispõem seus elementos de forma contígua na memória. Afirmativa correta. O vetor pode até ser dinâmica, mas usualmente usa alocação estática de memória e é o recurso usado na implementação das listas sequenciais. Não marcar o item. >> A lista circular é toda lista, independente do tipo de alocação, em que é formado um ciclo entre seus elementos. Por exemplo, quando o último elemento da lista aponta para o primeiro. Afirmativa correta. >> Listas encadeadas em geral são preferíveis em relação às listas sequenciais, especialmente por serem mais eficientes e sempre utilizarem menos espaço de armazenamento na memória. Afirmativa falsa porque as listas encadeadas não ocupam menos espaço que as listas sequencias. Cada nó de uma lista simplemente encadeada, por exemplo, tem um campo de dado e um campo que é ponteiro. Marcar esta afirmativa.
Compartilhar