Buscar

Estrutura de Dados com OO - Atividade 2

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 5 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

1. Na estrutura dinâmica de dados, o tamanho da estrutura não é fixo e pode ser modificado durante as operações realizadas nela, sendo projetadas para facilitar a mudança das estruturas de dados, apresentando alocação de memória dinâmica em tempo de execução.
 
Considerando essas informações e o conteúdo estudado sobre as estruturas de dados dinâmicas, analise as afirmativas a seguir.
I. A alocação de memória dinâmica pode combinar blocos estruturados alocados separadamente, para formar estruturas compostas que se expandem e contraem conforme necessário.
II. Um array dinâmico se expande conforme você adiciona mais elementos. Portanto, você não precisa determinar o tamanho com antecedência.
III. Os arrays dinâmicos colocam itens próximos uns dos outros na memória, o que reduz a eficiência de processamento.
IV. Adicionar ou remover itens dentro de arrays dinâmicos são procedimentos que levam tempo, pois seus elementos são armazenados de forma adjacente uns aos outros. 
R.: V, V, F, V.
2. Uma lista duplamente encadeada permite o acesso de um nó da lista ao próximo e também ao nó precedente da lista. Trata-se de uma extensão simplesmente encadeada e é mais utilizada do que ela (lista simplesmente encadeada) nos códigos.
 
Considerando essas informações e o conteúdo estudado sobre listas encadeadas, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s).
I. O código para a implementação da lista duplamente encadeada demanda mais controles de implementação do que a lista simplesmente encadeada, mas permite maior navegabilidade entre nós.
II. Para a implementação de uma lista duplamente encadeada, é necessária a utilização do nó cabeça e do nó cauda.
III. Na implementação da lista duplamente encadeada, os nós cabeça e cauda são criados na primeira operação de inclusão.
IV. O objetivo dos nós cabeça e cauda é simplificar as operações, eliminando a necessidade de código de caso especial quando a lista está vazia.
 
Agora, assinale a alternativa que apresenta a sequência correta:
R.: V, V, F, V.
3. Um vetor é uma estrutura de dados que armazena uma sequência de objetos, todos do mesmo tipo, em posições consecutivas da memória RAM. Analise trecho de código Java a seguir:
  
	public class Vetor  
{     public static void main (String[] args)      
{                 int[] vetor1;       
vetor1= new int[5];       vetor1 [0] = 10;       vetor1 [1] = 20;       
vetor1 [2] = 30;       vetor1 [3] = 40;       vetor1 [4] = 50;      
 for (int i = 0; i < vetor1.length; i++)          
System.out.println("Elemento no índice " + i +     " : "+ vetor1 [i]);              
 } }
Considerando essas informações e o conteúdo estudado sobre vetores, assinale a alternativa que indica as operações que estão sendo realizadas no trecho de código apresentado.
R.: Declaração da variável vetor1 como um array de inteiro, alocação de espaço de vetor com capacidade para 5 inteiros, inicialização dos elementos do array, acesso e apresentação dos elementos do array.
4. A estrutura de dados é uma maneira de armazenar e organizar dados de forma que as operações possam ser realizadas aumentando a eficiência em relação ao tempo e à memória. De forma geral, a estrutura de dados é usada para reduzir a complexidade (principalmente o tempo) do código. As estruturas de dados podem ser de dois tipos: estrutura estáticas de dados ou estruturas dinâmicas de dados.
 
Considerando essas informações e o conteúdo estudado sobre estruturas de dados, analise as afirmativas a seguir.
I. Na estrutura de dados estática, o tamanho da estrutura é fixo. O conteúdo da estrutura de dados pode ser modificado, mas sem alterar o espaço de memória alocado para ele.
II. O vetor é uma estrutura estática de dados, sendo um objeto recipiente que contém um número fixo de valores de um único tipo. O comprimento de um vetor é estabelecido quando o vetor é criado.
III. Na estrutura dinâmica de dados, o tamanho da estrutura não é fixo e pode ser modificado durante as operações realizadas nela.
IV. Estruturas estáticas de dados são projetadas para facilitar a mudança de estruturas de dados em tempo de execução.
 
Está correto apenas o que se afirma em:
R.: V, V, V, F.
5. Uma lista encadeada (= linked list = lista ligada) é uma sequência de células; cada célula contém um objeto (todos os objetos são do mesmo tipo) e o endereço da célula seguinte. Analise o código a seguir:
 
	public Lista(){ 
this.inicio = this.fim = null; } 
public boolean isVazia() { 
return this.inicio == null; } 
public int getQuantidade() { 
No<T> atual = this.inicio; int qtde = 0; 
while (atual != null){ 
++qtde; atual = atual.getProximo(); } 
return qtde; }
Considerando essas informações e o conteúdo estudado, identifique quais as operações foram apresentadas no código.
I. Construção da lista, verificação de lista vazia, leitura da quantidade de elementos.
II. Construção da lista e verificação de lista vazia.
III. Retorno da quantidade de elementos.
IV. Declaração, adição e retorno da quantidade de elementos.
 
Está correto apenas o que se afirma em:
R.: II e III.
6. Listas encadeadas são estruturas de dados lineares e dinâmicas. A grande vantagem que elas possuem em relação ao uso de vetor é o fato de terem tamanho máximo relativamente infinito (o tamanho máximo é o da memória do computador), ao mesmo tempo em que podem ter o tamanho mínimo de 1 elemento, evitando o desperdício de memória.
 
Considerando essas informações e o conteúdo estudado sobre a implementação de listas, analise as afirmativas a seguir.
I. As listas duplamente encadeadas se diferenciam das listas simplesmente encadeadas pelo fato de, na primeira, os nós da lista formarem um anel com o último elemento ligado ao primeiro da lista.
II. Na implementação das listas com encadeamento simples, os elementos da lista possuem informações de seu predecessor.
III. Ao implementar listas com encadeamento duplo, cada elemento possui duas informações: a informação de quem é seu sucessor e predecessor.
IV. Em algumas implementações, uma lista vazia pode ter um único nó, chamado de sentinela, nó cabeça ou header.
 
Agora, assinale a alternativa que apresenta a sequência correta:
R.: F, F, V, V.
7. Existem dois tipos de exceções que, normalmente, surgem de erros de programação com matrizes: um deles é tentar usar uma variável de array antes que ele seja alocado, e o outro é tentar acessar uma matriz fora de seus limites.
 
Considerando essas informações e o conteúdo estudado sobre arrays, pode-se afirmar que, para o último caso descrito no elemento-base, o tipo de erro apresentado é:
R.: ArrayIndexOutOfBoundException
8. Uma lista encadeada pode ser considerada uma estrutura de dados linear, em que cada elemento é considerado um objeto ou entidade separada em si mesmo. Cada elemento de uma lista consiste em dois itens - os dados e a referência ao próximo nó.
 
Considerando essas informações e o conteúdo estudado sobre, pode-se afirmar que a estrutura que tem o valor null somente no seu último nó é a:
R.: Lista simplesmente encadeada.
9. Definimos uma lista como uma sequência finita e ordenada de itens de dados conhecidos como elementos, de modo que cada elemento tenha uma posição na lista, que pode ser indicada por um ponteiro, sendo composta por células que apontam para o próximo elemento dessa lista.
 
Considerando essas informações e o conteúdo estudado sobre a lista, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s).
I. Em uma lista, o número de elementos armazenados é chamado de comprimento da lista.
II. As listas classificadas têm seus elementos posicionados em ordem crescente de valor, de forma a ter o valor de seus elementos relacionado com sua posição na lista.
III. O início da lista é chamado de cabeçalho, o final da lista é chamado de cauda.
IV. As listas simplesmente encadeadas têm dois ponteiros, que indicam seus elementos sucessores e antecessores.
R.: V, V, V, F.
10. Existem muitas especificidades pertinentes a linguagem Java que podeminduzir o desenvolvedor a cometer erros sutis. Um exemplo clássico é declaração de múltiplas variáveis de array em uma única declaração é um exemplo.
Agora analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s).
I. (  ) Na declaração array: int[ ] a, b, c, todas as variáveis estão declaradas como variáveis do tipo arrays de inteiro.
II. (  ) Na declaração array: int[ ] a, b, c, a variável a está declarada como um array de inteiros e as demais variáveis b e c, são declaradas como tipos básicos inteiros.
III. (  ) Na a declaração int a[ ], b, c a variável a é uma variável do tipo array e as demais são do tipo int.
IV. (  ) Uma forma simplificada de declaração variável de arrays é utilizar a classe Arraylist e declarar as variáveis desejadas de forma sequencial.
R.: V, F, V, F.

Continue navegando