Buscar

ESTRUTURA DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

• 
Um programador é responsável pelo desenvolvimento de um sistema de vendas para uma 
empresa, a qual já possui uma versão de um sistema, porém este não atende mais aos 
requisitos do mercado, principalmente quanto à escalabilidade de operações e à 
confiabilidade de gestão de estoques, pois os principais algoritmos de busca e 
atualização de estoque fornecem respostas nos tempos exigidos pelas transações de 
venda de produtos na internet. O programador precisa comparar dois algoritmos 
utilizando o mesmo ambiente computacional e possui recursos (prazo e orçamento) para 
implementar as duas soluções. Assim, ele pretende avaliar o tempo de execução de cada 
uma das soluções aplicadas ao mesmo conjunto de dados (o qual atualmente causa 
problema no controle de estoque) e contabilizar o tempo real consumido por ambas, 
comparando os resultados para selecionar a mais eficiente. Qual das alternativas melhor 
representa essa abordagem de medida de eficiência de algoritmos? 
Resposta Selecionada: a. 
Estudos experimentais. 
Respostas: a. 
Estudos experimentais. 
 b. 
Análise visual do programa. 
 c. 
Simulação completa do sistema. 
 d. 
Análise de componentes utilizados. 
 e. 
Análise assintótica de algoritmos. 
Comentário 
da resposta: 
Alternativa A. 
Uma abordagem para a obtenção de um método de medida de eficiência 
de algoritmos visando à escolha entre possíveis soluções deve ser 
baseada em estudos experimentais que avaliem o tempo de execução de 
uma solução aplicada a diversos conjuntos de dados e contabilizem o 
tempo real consumido a cada amostra (TENENBAUM; LANGSAM; 
AUGENSTEIN, 1995). 
Nesse processo experimental para determinar uma possível dependência 
entre o tempo de execução e o volume de dados, faz-se necessário realizar 
diversos experimentos sobre amostras de dados diferenciadas por meio 
de uma análise fundamentada em elementos gráficos e em cálculos 
estatísticos, tanto em conjuntos de dados quanto no tamanho desses 
conjuntos, buscando afirmações razoáveis em relação ao tempo de 
execução de uma solução em função do tamanho dos dados. 
 
• Pergunta 2 
0 em 1 pontos 
 
Considerando o método removeInicio() (implementado em Java e disponível no 
material de aula), que remove um elemento do início de uma lista ligada e listado a 
seguir: 
 public Object removeInicio() 
 { 
 No auxiliar = this.inicio; // passo 1 da figura 4 
 this.inicio = auxiliar.getProximo(); // passo 2 da figura 4 
 return auxiliar.getElemento(); // passo 3 da figura 4 
 } 
Vamos assumir que estamos tratando uma lista de valores inteiros e que a 
operação removeInicio() é realizada duas vezes sobre as listas representadas nas 
alternativas a seguir. Indique em qual delas ocorrerá um exceção ou erro de execução 
do programa. 
 
Resposta Selecionada: a. 
(3, 9, 8, 10) 
Respostas: a. 
(3, 9, 8, 10) 
 b. 
(10, 8, 9, 3) 
 c. 
(10) 
 d. 
(100, 101, 102) 
 e. 
(102, 101) 
Comentário da 
resposta: 
Alternativa C 
A operação removeInicio() não realiza o teste de lista ligada vazia, 
sendo assim a primeira execução remove o valor 10 e deixa a lista 
vazia, a segunda execução resultará em exceção ou erro de execução. 
 
 
• Pergunta 3 
1 em 1 pontos 
 
A análise assintótica de algoritmos permite avaliar a eficiência por meio da 
comparação de uma função matemática que represente o comportamento do 
algoritmo com um conjunto básico de funções matemáticas. Qual alternativa apresenta 
essas funções? 
 
Resposta Selecionada: c. 
Constante, log, linear, NlogN, quadrática, cúbica e exponencial. 
Respostas: a. 
Trigonométricas e algébricas. 
 
 b. 
Transformada de Fourier e transformada de Laplace. 
 c. 
Constante, log, linear, NlogN, quadrática, cúbica e exponencial. 
 d. 
Derivadas das funções matemáticas. 
 e. 
Integrais, baseada em cálculo numérico. 
Comentário 
da resposta: 
Alternativa C. 
A utilização dos conceitos associados à análise assintótica e à notação 
de ordem de grandeza oferece uma poderosa ferramenta para 
comparação de algoritmos, pois, uma vez definida a função matemática 
que caracteriza um determinado algoritmo, esta pode ser enquadrada 
em um limitante superior de eficiência definido por outra função 
matemática básica e com características de eficiência conhecidas. São 
7 as principais funções matemáticas básicas aplicáveis nesse caso 
(GOODRICH; TAMASSIA, 2013): Constante, log, linear, NLogN, 
quadrática, cúbica e exponencial. 
 
• Pergunta 4 
0 em 1 pontos 
 
Considerando o conceito de árvore binária de busca ABB, podemos afirmar que: 
Resposta 
Selecionada: 
d. 
ABB são árvores que melhoram a eficiência da inserção e remoção 
de elementos. 
Respostas: a. 
ABB apenas implementa árvore binárias recursivamente. 
 
b. 
ABB não permite inserção e remoção de elementos, apenas a busca 
de elementos. 
 
c. 
ABB utiliza algoritmos de buscas lineares para melhorar o acesso 
aos elementos. 
 
d. 
ABB são árvores que melhoram a eficiência da inserção e remoção 
de elementos. 
 
e. 
ABB viabiliza a utilização de estrutura hierárquica que melhoram a 
eficiência do processo de acesso aos dados armazenados. 
 
Comentário da 
resposta: 
Alternativa E 
A árvore binária de busca (ABB) é uma estrutura de dados não linear 
que visa à melhoria na eficiência no processo de acesso aos dados 
armazenados, na qual os elementos seguem a seguinte organização 
(GOODRICH; TAMASSIA, 2013): 
• Todos os elementos da subárvore esquerda de um nó são 
sempre menores que o valor armazenado neste nó. 
• Todos os elementos da subárvore direita de um nó são sempre 
maiores que o valor armazenado neste nó. 
 
 
 
• Pergunta 5 
0 em 1 pontos 
 
Considerando que um TAD lista ligada possui os operadores ins(valor), que insere valor 
no início da lista, e rem(), que remove valor do início da lista, e que a lista ligada já tem 
os dados (12, 23, 45, 11, 10, 23), qual das opções a seguir apresenta os comandos 
necessários para que a lista fique com a seguinte sequência de dados (0, 5, 
45,11,10,23)? 
 
Resposta Selecionada: e. 
rem(), rem(), rem(), rem(), rem(), ins(0), ins(5) 
Respostas: a. 
rem(), rem(), ins(5), ins(21), rem(), ins(0), ins(31), rem() 
 b. 
ins(0), ins(5) 
 c. 
rem(), rem(), rem(), ins(5), rem(), ins(0), ins(5) 
 d. 
ins(4), rem(), ins(5), ins(0) 
 e. 
rem(), rem(), rem(), rem(), rem(), ins(0), ins(5) 
Comentário da 
resposta: 
Alternativa A 
A execução das operações sobre a lista (12, 23, 45, 11, 10, 23) é 
a seguinte: 
(23, 45, 11, 10, 23) rem() 12, 
(45, 11, 10, 23) rem() 23, 
ins(5) (5, 45, 11, 10, 23), 
ins(21) (21, 5, 45, 11, 10, 23), 
(5, 45, 11, 10, 23) rem() 21, 
ins(0) (0, 5, 45, 11, 10, 23), 
ins(31) (31, 0, 5, 45, 11, 10, 23), 
 
(0, 5, 45, 11, 10, 23) rem() 31. 
Resultado final (0, 5, 45, 11, 10, 23) 
 
• Pergunta 6 
0 em 1 pontos 
 
A comparação da eficiência de algoritmos pode ser realizada pela comparação de 
funções matemáticas básicas com as funções que representam o comportamento do 
algoritmo, sempre considerando os tamanhos do conjunto de dados tratado pelos 
algoritmos. Qual é o nome dado a essa abordagem para comparação de eficiência em 
algoritmos? 
 
Resposta Selecionada: a. 
Estudos experimentais. 
Respostas: a. 
Estudos experimentais. 
 b. 
Experimento científico-matemático. 
 c. 
Análise amostral de dados. 
 d. 
Equipe de matemáticos especialistas. 
 e. 
Análise assintótica de algoritmos. 
Comentário 
da resposta: 
Alternativa E. 
A análise assintótica de algoritmos consiste em analisar um algoritmo e 
determinar, com base nas operações envolvidas em sua 
implementação, uma função matemática que represente o tempo de 
execução dele em função do tamanho do conjunto de dados, 
encontrando outra função matemática básica e bem conhecida 
(constante, quadrática, exponencial etc.) que se aproxime o melhor 
possível (de forma assintótica)da função definida para esse algoritmo. 
 
 
• Pergunta 7 
1 em 1 pontos 
 
As estruturas de dados devem ser utilizadas pelos programadores para auxiliar no 
desenvolvimento de programas e devem ser aplicadas corretamente no tratamento dos 
problemas. Qual das alternativas representa uma estrutura composta por um conjunto 
de elementos lineares, organizados e encadeados em sequência e que, a priori, não 
sabemos o tamanho do conjunto? 
 
Resposta Selecionada: e. 
Lista ligada 
 
Respostas: a. 
Vetores 
 b. 
Matrizes 
 c. 
Constante numérica 
 d. 
Árvores 
 e. 
Lista ligada 
Comentário 
da resposta: 
Alternativa E 
A lista ligada é uma estrutura de dados composta por um conjunto de 
elementos denominados nós, organizados e encadeados em sequência 
e que pode ser representado como um tipo abstrato de dados (TAD) 
(GOODRICH; TAMASSIA, 2013; TENENBAUM; LANGSAM; AUGENSTEIN, 
1995). A lista ligada pode ser aplicada em diversos problemas 
computacionais, principalmente aqueles em que não se sabe o 
tamanho do conjunto de dados. 
 
• Pergunta 8 
1 em 1 pontos 
 
Um programador está implementando um sistema embarcado para um novo 
equipamento industrial e necessita utilizar um algoritmo a fim de organizar valores que 
sejam fáceis de implantar e, também, sejam suportados pelos recursos do controlador 
que ele está utilizando no sistema embarcado. Nesse contexto, ele já utilizou a 
estrutura de dados de uma árvore de busca binária (ABB) em outro projeto, conhece as 
características de implementação e sabe que, na ABB, existe sempre certa ordenação 
entre os nós-filhos (subárvores esquerda e direita) e o nó-pai; entretanto, essa 
característica não é eficiente quando os dados de entrada já possuem uma 
determinada ordenação e resolveu-se utilizar uma árvore de busca binária balanceada 
(AVL). Nesse contexto, qual é a característica adicional encontrada em uma árvore AVL 
que a diferencia de uma ABB? 
 
Resposta 
Selecionada: 
c. 
As alturas das subárvores direita e esquerda de qualquer nó 
diferem, no máximo, em uma unidade. 
Respostas: a. 
Um nó pode ter mais do que dois filhos. 
 b. 
Todo nó sempre tem dois filhos. 
 c. 
 
As alturas das subárvores direita e esquerda de qualquer nó 
diferem, no máximo, em uma unidade. 
 d. 
A altura da árvore é sempre um número par. 
 e. 
A altura da árvore é sempre um número ímpar. 
Comentário da 
resposta: 
Alternativa C. 
Uma árvore binária T é denominada AVL quando, para qualquer nó de 
T, as alturas de suas subárvores esquerda e direita diferem em 
módulo de até uma unidade. 
 
• Pergunta 9 
0 em 1 pontos 
 
Para a modelagem e a resolução de um problema associado à otimização de custos de 
produção, um analista utiliza grafos dirigidos e ponderados para examinar o processo 
de produção de certo produto e determinar alternativas que possam reduzir os custos. 
Após construir o grafo dirigido, ele notou que havia um caminho, começando em um 
vértice do grafo que permitia retornar a esse mesmo vértice. No relatório de análise, ele 
precisa colocar o nome correto desse tipo de caminho. Qual das alternativas denomina 
esse caminho? 
 
Resposta Selecionada: b. 
Formado por arestas não adjacentes. 
Respostas: a. 
Aberto. 
 b. 
Formado por arestas não adjacentes. 
 c. 
Uma ligação de vértices. 
 d. 
Um ciclo dirigido. 
 e. 
Fechado. 
Comentário da 
resposta: 
Alternativa D. 
Quando um caminho de um grafo forma um ciclo (partindo de um 
vértice, é possível voltar a esse mesmo vértice), ele é denominado ciclo 
dirigido. Um dígrafo acíclico é aquele que não possui ciclo dirigido 
(GOODRICH; TAMASSIA, 2013). 
 
 
• Pergunta 10 
0 em 1 pontos 
 
A implementação de um TAD grafo necessita que os dados associados a vértices e 
arestas sejam representados. Os vértices podem ser armazenados em um vetor com 
os dados associados aos vértices. Quais são as estruturas de dados comumente 
utilizadas para implementar os grafos e que permitem representar as arestas como 
ligações entre os vértices? 
 
Resposta Selecionada: b. 
Vetor de marcação e vetor simples. 
Respostas: a. 
Lista de adjacências e matriz de adjacências. 
 b. 
Vetor de marcação e vetor simples. 
 c. 
Árvore binária e árvore binária de busca. 
 d. 
Variáveis estruturadas e registros. 
 e. 
Filas e pilhas. 
Comentário 
da resposta: 
Alternativa A. 
Duas estruturas de dados computacionais são comumente utilizadas 
na implementação de grafos: a lista de adjacências e a matriz de 
adjacências (GOODRICH; TAMASSIA, 2013). Na lista de adjacências, as 
arestas são armazenadas em um vetor de listas ligadas, e cada uma 
dessas listas armazena em seus nós as adjacências de cada vértice. Na 
implementação de um grafo com N vértices baseada em matriz de 
adjacências, utiliza-se um vetor bidimensional com N posições em cada 
dimensão (matriz NxN) para indicar a existência de uma aresta entre 
dois vértices.

Continue navegando

Outros materiais