Baixe o app para aproveitar ainda mais
Prévia do material em texto
03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 1/6 Meus Simulados Teste seu conhecimento acumulado Disc.: ESTRUTURA DE DADOS EM PYTHON Aluno(a): RODRIGO SCHIAVO LEITE 202208477501 Acertos: 8,0 de 10,0 04/04/2023 Acerto: 1,0 / 1,0 Em Python é possível implementar um array utilizando o tipo padrão list. Essa implementação permite o uso das seguintes funções para inserir e remover um elemento, respectivamente: append, remove/pop. insert, delete/pop. insert, remove/destroy. append, pop/delete. impose, remove/destroy. Respondido em 04/04/2023 11:44:40 Explicação: Em Python a função append insere um elemento ao �nal da lista. As funções "remove" e "pop" podem remover um elemento, de maneiras diferentes. Remove tira um elemento conhecido usando o seu conteúdo, já pop remove um elemento usando seu índice, ou seja, a sua posição na lista. Acerto: 1,0 / 1,0 Dada a seguinte matriz M, inicializada com o código: M=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] O código em Python para imprimir cada elemento da coluna iniciada pelo elemento 3 é: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 for coluna in M: print(coluna) print(M[2]) for linha in M: print(linha[2]) Questão1 a Questão2 a https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); 03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 2/6 for linha in M: print(linha) for linha in M: print(linha[3]) Respondido em 04/04/2023 11:41:28 Explicação: O laço deve percorrer uma coluna, iterando linha a linha e extraindo dela o seu terceiro elemento, ou seja linha[2]. A resposta correta itera pelas linhas e imprime o elemento [2] de cada uma. Dentre as respostas erradas, apenas escrever ¿print(linha)¿ imprimirá cada linha como um todo, resultando na impressão de toda a matriz, linha a linha. A resposta "print(coluna)" terá o mesmo resultado pois para o código linha e coluna são apenas nomes escolhidos pelo programador. Poderia ser i, aux ou qualquer outra variável escolhida. Já "print(linha[3])" está com o índice errado, imprimindo os elementos da coluna iniciada por 4. E ¿print(M[2])¿ imprime toda a linha iniciada por 9. Acerto: 0,0 / 1,0 O método de ordenação da bolha, ou Bubblesort (BS) tem complexidade de pior caso O(n2) e melhor caso O(n). Suponha que exista um algoritmo de ordenação MS que tem complexidade de melhor caso O(nlog n) e de pior caso O(nlog n). Podemos a�rmar que: Para um grande conjunto de entradas variadas de tamanho grande, MS executará em menos tempo que BS, em média. Para um grande conjunto de entradas variadas de tamanho grande, BS executará em menos tempo que MS, em média. Para uma única entrada de tamanho grande, BS executará em menos tempo que MS. Para uma única entrada de tamanho grande, MS executará em menos tempo que BS. MS e BS são igualmente e�cientes em ordenar elementos, independente da entrada ou seu tamanho. Respondido em 04/04/2023 11:47:35 Explicação: Pela natureza do tratamento de complexidade de algoritmos e o uso da notação O, a única a�rmativa verdadeira é a de que em média, com um grande número de entradas distintas e de tamanho grande, MS executará mais rápido que BS pois sua complexidade assintótica O(nlogn) é melhor que a de BS O(n2). A a�rmação inversa está errada pelo mesmo argumento, O(nlogn) é melhor que O(n2). As a�rmações que tratam de uma única entrada são falsas, pois você sempre pode escolher uma entrada que seja de melhor caso para um dos algoritmos e seja ruim para o outro. Por �m, a a�rmação de que ambos são igualmente e�cientes é desmentida pelo pior caso. Acerto: 1,0 / 1,0 Uma Lista pode ser implementada de forma contígua ou encadeada. No caso de uma lista implementada de forma contígua, as complexidades de pior caso de busca, inserção e remoção são respectivamente: O(n), O(n) e O(1). Questão3 a Questão4 a 03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 3/6 O(log n), O(n) e O(n). O(n), O(1) e O(n). O(n), O(n) e O(n). O(1), O(n) e O(n). Respondido em 04/04/2023 11:57:11 Explicação: A busca é O(n) pois no pior caso você terá que percorrer toda a lista sequencialmente até encontrar o último elemento. Já a inserção, no seu pior caso, colocará um elemento no início da lista, obrigando todos os demais a serem deslocados uma posição, levando O(n) operações. A remoção também tem nesse seu pior caso, remover o primeiro elemento, o que obrigará todos os demais a serem ¿puxados¿ uma posição levando tempo O(n). Esse custo pode ser diminuído caso você implemente uma variável que indique o início da lista, mesmo assim, ao remover um elemento exatamente do meio da lista, você precisará mover n/2 elementos, o que ainda é um custo linear. Acerto: 1,0 / 1,0 Uma Pilha é uma estrutura de dados que permite o armazenamento de elementos (ou nós) sequencialmente. Sobre as Pilhas é possível a�rmar que: Permitem inserção ou remoção em qualquer de suas posições. Permitem inserção ou remoção apenas no seu início ou no seu �nal. Permitem inserção no seu �nal e remoção apenas no seu início. Permitem inserção ou remoção apenas no seu início. Permitem inserção no seu início e remoção apenas no seu �nal. Respondido em 03/05/2023 11:32:47 Explicação: A Pilha, assemelhando-se ao seu conceito na vida real, permite inserções e remoções apenas no seu início (push e pop). Dessa forma, implementa a política ¿First In, Last Out¿ (FILO) na qual o nó que chegou há menos tempo será sempre removido primeiro. As demais respostas indicam outras estruturas como listas, �las e deques. Acerto: 0,0 / 1,0 Suponha que você está implementando um programa que precisa armazenar dados ordenados em uma estrutura para serem tratados posteriormente, na ordem em que foram recebidos. Haverá uma grande quantidade de recebimentos e tratamento de dados, mas o tamanho esperado da estrutura não deve variar muito. Qual tipo de estrutura de dado é a melhor nessa situação? Lista duplamente encadeada. Fila. Pilha. Lista em alocação contígua. Lista simplesmente encadeada. Respondido em 03/05/2023 11:33:57 Questão5 a Questão6 a 03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 4/6 Explicação: A �la permite o tratamento de nós usando a política requerida, FIFO ¿ ¿�rst in �rst out¿ -. Além disso, as operações de inserção e remoção são O(1), ou seja, de complexidade constante, a melhor possível. Isso condiz com o requisito de que haverá muitas operações desse tipo. Por �m, o fato de a estrutura não variar muito em tamanho permite o uso de uma alocação contígua e otimizada para a �la usando lógica circular e variáveis para o início e �nal da �la. A pilha não obedece a lógica FIFO e as listas tem complexidade de inserção e remoção O(n) sendo muito piores que a �la, principalmente quando o número desses tipos de operação é grande. Acerto: 1,0 / 1,0 As árvores de busca são estruturas de dados que armazenam elementos de forma hierárquica, permitindo uma busca e�ciente em grandes conjuntos de dados. Marque a opção correta acerca das estruturas de dados Árvores e Árvores Binárias: Os nós de uma árvore que possuem grau zero são chamados de raiz. Nas Árvores Binárias de Busca cada nó deve ter exatamente 2 �lhos. Ao acessar uma árvore, deve-se acessar pela referência a sua raiz. A raiz está no maior nível da árvore. As folhas estão sempre no nível 1 da árvore. Respondido em 04/04/2023 11:43:03 Explicação: A forma comum de representar uma árvore em memória é utilizando alocação dinâmica.Não representamos a árvore como um todo, mas sim uma referência para sua raiz que guarda a chave (dado) e uma referência para a raiz das sub- árvores esquerda e direita. Um nó pode ter 0, 1 ou 2 �lhos. As folhas podem estar em qualquer nível. A raiz pode ter grau zero quando é raiz e folha simultaneamente. A raiz está sempre no nível 1. Acerto: 1,0 / 1,0 Seja a seguinte árvore binária de busca, marque a opção que apresenta o percurso em pré-ordem dessa árvore: D,B,E,F,C,A F,C,E,B,A,D A,B,C,D,E,F A,D,C,E,B,F D,A,B,E,C,F Respondido em 04/04/2023 11:42:03 Questão7 a Questão8 a 03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 5/6 Explicação: A resposta correta é a questão E. O percurso em pré-ordem é de�nido como se segue. A partir da raiz r da árvore T, percorre-se a árvore da seguinte forma: 1 - visita-se a raiz; 2 - percorre-se a subárvores esquerda de T, em pré-ordem e 3 - percorre-se a subárvores direita de T, em pré-ordem. Resultado da pesquisa pré-ordem: Acerto: 1,0 / 1,0 As a�rmativas abaixo são feitas com base na estrutura de dados "Árvore Binária de Busca". Em relação ao algoritmo de busca em uma árvore binária de busca, analise as a�rmativas abaixo: I -A complexidade da busca é de�nida pela altura da árvore binária de busca. No pior caso O(n). II - A busca é de�nida de forma recursiva, parte da raiz, comparando a chave buscada com a armazenada na raiz, caso seja igual temos o sucesso da busca, caso contrário, se a chave buscada for menor, devemos proceder recursivamente no ramo esquerdo, se a chave buscada for maior, proceder recursivamente no ramo direito. III - Sempre é necessário percorrer toda a árvore no algoritmo de busca. Em todos os casos, mesmo em árvores completas. IV - A condição de parada da busca é encontrar a chave buscada ou ter que descer por um ramo vazio. V - É possível escrever o algoritmo da busca de forma não recursiva. II, III, IV e V são corretas. I, II, III, IV e V são corretas. I, III, IV e V são corretas. I, II, III e IV são corretas. I, II, IV e V são corretas. Respondido em 03/05/2023 11:38:06 Explicação: A a�rmativa III é incorreta, não é necessário percorrer todos os nós da árvore se ela estiver perfeitamente balanceada. Questão9 a 03/05/2023, 11:46 Estácio: Alunos https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=305452155&cod_prova=6139045977&f_cod_disc= 6/6 Acerto: 1,0 / 1,0 As árvores AVL constituem uma importante estrutura de dados que disponibilizam operações de busca, inserção e remoção. Classi�que como verdadeiro ou falso as a�rmativas abaixo: I - As árvores de Fibonacci são as árvores de altura máxima h com número mínimo do nós n e altura proporcional a log n. II - As árvores completas são árvores AVL. III - É possível construir uma topologia de uma árvore AVL que não seja nem completa nem de Fibonacci com altura proporcional a log n. IV - Uma vez que a altura das árvores AVL é proporcional a log n, podemos garantir que a busca ocorre numa complexidade de O(log n). V - Na remoção, pode ser necessário realizar todas as rotações, no pior caso, do pai de uma folha que está sendo removida até a raiz. Por esta razão, a complexidade da remoção é maior que O(log n). I-F, II-F, III-F, IV-V, V-V. I-F, II-F, III-V, IV-F, V-F. I-V, II-V, III-F, IV-V, V-F. I-V, II-F, III-F, IV-V, V-V. I-V, II-V, III-V, IV-V, V-F. Respondido em 03/05/2023 11:37:20 Explicação: Nem sempre é necessário realizar todas as operações, visto que a remoção pode eliminar uma folha e não causar desbalanceamento na árvore. Questão10 a
Compartilhar