Prévia do material em texto
Avaliando Aprendizado Teste seu conhecimento acumulado Disc.: ESTRUTURA DE DADOS Aluno(a): GABRIEL VIEIRA FRANCISCO 202208428215 Acertos: 1,6 de 2,0 30/10/2023 Acerto: 0,2 / 0,2 Ao usar a biblioteca numpy para criar arrays, existem diversas facilidades que um programador pode utilizar, como funções especí�cas para somar todos os elementos, encontrar valores mínimo e máximo dos elementos, entre outros. Entretanto uma desvantagem de usar array da biblioteca numpy é: Diminuição no tempo de programação. Não é possível remover elementos do array. Não é possível adicionar novos elementos ao array. Todos os elementos devem ter o mesmo tamanho. Os índices passam a ser contados a partir de 1. Respondido em 30/10/2023 20:01:09 Explicação: A desvantagem é que os elementos do array devem ocupar o mesmo espaço de memória, então devem ser de mesmo tamanho. Isso não permite que você crie arrays com elementos de tamanho assimétricos. Os índices continuam sendo contados a partir de 0 e as operações de inserção e remoção continuam sendo possíveis. A diminuição no tempo de programação é uma vantagem. Acerto: 0,0 / 0,2 Uma Deque é uma estrutura de dados mais generalista que as pilhas e �las. Para implementá-la de forma e�ciente, você pode usar: Lista simplesmente encadeada com nó cabeça. Lista duplamente encadeada com 2 variáveis: início e �nal. Pilha com 1 variável: topo. Fila com 2 variáveis: início e �nal. Lista contígua com 1 variável: início. Respondido em 30/10/2023 20:13:21 Explicação: Para implementar uma deque e�cientemente, você precisa ter um ponteiro para o início e o �nal da deque, permitindo inserções e remoções em ambas as pontas com complexidade O(1) , sem a necessidade de percorrer a estrutura, o que seria O(n). Questão1 a Questão2 a https://simulado.estacio.br/alunos/inicio.asp https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); javascript:voltar(); Além disso, a �la é uma especialização da deque. Ou seja, toda �la é um deque, mas nem toda deque é uma �la. Podemos assim eliminar a resposta contendo �la. A resposta restante que possui 2 variáveis é a correta. Lista duplamente encadeada. Ela permite a inserção e remoção nas extremidades com complexidade O(1). A lista contígua e a simplesmente encadeada com nó cabeça levariam a operação de inserção e remoção ao �nal da �la terem complexidade O(n) por precisarem percorrer toda a estrutura, sendo também descartadas. Acerto: 0,2 / 0,2 As operações de busca, remoção e inserção de nós em uma árvore binária de busca levam determinado tempo de execução de seus algoritmos. Esses tempos são dados pela alternativa: Busca: O(n) / Remoção: O(n) / Inserção: O(n) Busca: O(1) / Remoção: O(log n) / Inserção: O(log n) Busca: O(n) / Remoção: O(log n) / Inserção: O(log n) Busca: O(n) / Remoção: O(n) / Inserção: O(log n) Busca: O(log n) / Remoção: O(n) / Inserção: O(log n) Respondido em 30/10/2023 20:02:18 Explicação: No pior caso uma árvore binária de busca com n chaves tem n níveis. Assim, o pior caso da busca, é buscar o nó mais profundo da árvore que demandará n comparações. Como a busca é subrotina da inserção e da remoção, então as três operações terão complexidade de pior caso de O(n). Acerto: 0,2 / 0,2 Um percurso é uma forma organizada de acesso à informação armazenada nos nós de uma estrutura de dados. Sobre Árvores Binárias de Busca, marque a opção correta: Toda nova chave inserida em uma árvore binária de busca é inserida na raiz da árvore. No pior cenário, uma busca por um elemento em uma árvore binária de busca pode exceder O(log n) , chegando a n passos nessa busca. Não é possível remover um nó interno com dois �lhos de uma árvore binária de busca. Toda árvore binária de busca tem altura proporcional a n, onde n é o número de nós na árvore. Toda árvore binária de busca tem altura proporcional a log n, onde n é o número de nós na árvore. Respondido em 30/10/2023 20:16:14 Explicação: No pior cenário, os nós de uma árvore podem estar inseridos de tal forma a causar desbalanceamento progressivo, levando a n passos em caso de busca por um elemento. Acerto: 0,2 / 0,2 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 Questão3 a Questão4 a Questão5 a 13 14 15 16 for linha in M: print(linha[2]) for linha in M: print(linha[3]) for coluna in M: print(coluna) print(M[2]) for linha in M: print(linha) Respondido em 30/10/2023 20:04:52 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,2 / 0,2 Uma lista circular é uma estrutura de dados contínua, permitindo que seja iterada sobre ela de forma in�nita. Uma das suas aplicações em jogos digitais é: Em jogos competitivos, para garantir que não há scripts ou bots rodando no computador. Em jogos mobile, para armazenar o número do telefone do jogador. Em jogos de um jogador para armazenar um conjunto �xo de elementos. Em jogos multijogador para garantir que apenas um dos jogadores jogue todas as vezes. Em jogos multijogador em turnos, permitindo ceder o controle a um jogador por vez. Respondido em 30/10/2023 20:05:23 Explicação: A grande virtude das listas circulares é o fato delas poderem ser percorridas um elemento por vez, de forma in�nita. Apenas quando todos os elementos forem percorridos uma vez, começarão a ser percorridos pela segunda vez, na mesma ordem. Essa disposição é excelente para a implementação de políticas ¿Round robin¿, ou seja, onde cada jogador tem a sua vez de jogar e as vezes são igualmente distribuídas entre os jogadores. Por isso a resposta correta é em jogos multijogador em turnos, permitindo ceder o controle a um jogador por vez. Acerto: 0,2 / 0,2 A raiz é o ponto de partida para acessar todos os elementos de uma árvore. Marque a opção correta acerca dos principais conceitos de árvore binária de busca: Questão6 a Questão7 a O objetivo principal da estrutura de dados árvore binária de busca é ordenar uma lista sem a preocupação de implementar de forma e�cientemente. Novas chaves maiores que a raiz sempre serão inseridas à esquerda. Qualquer nó pode ter um número arbitrário de nós, sempre maior que 2. Em todas as estruturas de dados onde se realiza busca, inserção e remoção não são admitidas duplicidade de chaves. Isto também inclui as árvores binárias de busca. Dado um nó qualquer da árvore binária, todos os nós à direita dele são menores ou iguais a ele. Respondido em 30/10/2023 20:06:13 Explicação: O grau máximo de um nó em uma árvore binária é 2. A unicidade de chave é um pressuposto para estruturas de busca. O objetivo principal de uma árvore binária de busca é implementar os algoritmos de busca, inserção e remoção de forma otimizada. Chaves maiores que a raiz devem ser inseridas à direita. Dado qualquer nó de uma árvore binária de busca, deve valer recursivamente a propriedade de que as chaves contidas à esquerda são menores que a raiz e a direita maiores. Acerto: 0,2 / 0,2 Seja as seguintes a�rmações sobre árvores binárias: I - Os nós que não possuem �lhos são chamados de nós folhas. II - O nó raiz é um nó na árvore que não possuiantecessor (ou não tem pai). III - As árvores binárias são estruturas não lineares. Estão corretas as a�rmativas: I, II e III. I e II, apenas. III, apenas. II e III, apenas. I, apenas. Respondido em 30/10/2023 20:06:36 Explicação: Os nós que são folhas não possuem apontamentos para outros nós, ou seja, não possuem �lhos. Por outro lado, um nó raiz não possui pai, ou seja, não tem apontadores antecessores. Árvores binárias são estruturas que não possuem linearidade. Acerto: 0,0 / 0,2 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, BS executará em menos tempo que MS, em média. Para uma única entrada de tamanho grande, MS executará em menos tempo que BS. Para uma única entrada de tamanho grande, BS executará em menos tempo que MS. MS e BS são igualmente e�cientes em ordenar elementos, independente da entrada ou seu tamanho. Para um grande conjunto de entradas variadas de tamanho grande, MS executará em menos tempo que BS, em média. Respondido em 30/10/2023 20:10:28 Questão8 a Questão9 a 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: 0,2 / 0,2 Uma lista L encadeada e ordenada está armazenada em memória seguindo o exemplo abaixo. Após a remoção do nó de chave 3, quais alterações terão ocorrido? A variável L apontará para 128. L terá sido apagada. O endereço 32 terá seu campo próximo apontando para 24. O endereço 24 conterá a chave 5 e próximo 64. O conteúdo armazenado no endereço 32 será apagado. Respondido em 30/10/2023 20:09:16 Explicação: A remoção solicitada é do primeiro elemento da lista encadeada. Para realizar esse tipo de remoção, basta apontar a variável que guarda o primeiro elemento (L) para o endereço do segundo elemento. Este endereço está armazenado no campo próximo do primeiro elemento. Ou seja, a variável L deverá apontar para 128. A resposta endereço 24 conterá a chave 5 está errada pois na lista encadeada, os elementos não precisam ser puxados após uma remoção. A resposta endereço 32 terá seu campo próximo alterado está errada, pois isso adicionaria um elemento ao �nal da lista, no caso tornando-a circular. As demais respostas estão erradas pois nada será apagado. Questão10 a