Buscar

Aula 5 ESTRUTURA DE DADOS LISTA

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

ESTRUTURA DE DADOS
5a aula
		
	 
	Lupa
	 
	 
	
Vídeo
	
PPT
	
MP3
	 
	
	 
	Exercício: CCT0753_EX_A5_201709084006_V1 
	31/05/2018 18:57:51 (Finalizada)
	Aluno(a): WELLYNGTON ORTIZ
	2018.1 - F
	Disciplina: CCT0753 - ESTRUTURA DE DADOS 
	201709084006
	 
	Ref.: 201709684244
		
	
	 1a Questão
	
	
	
	
	__________________________ é uma lista linear em que a alocação de memória pode ser estática, e que a forma de armazenamento é contígua ou sequencial na memória. Usamos este tipo de lista quando se tem em mente um tamanho pré-definido, ou seja, quando se sabe até onde a lista pode crescer.
		
	
	Lista Linear de Alocação de Memória
	
	Lista Linear Não Sequencial
	
	Lista Linear Não Alocada
	 
	Lista Linear Sequencial
	
	Lista Não Linear
	
	 
	Ref.: 201709768063
		
	
	 2a Questão
	
	
	
	
	Considere uma lista com n  livros, em que cada livro é modelado pela struct :
 
struct Livro {
                            string titulo,  editora, autor;
                            float preco;
};
 
A função X abaixo
 
void X (Livro v[ ], int &n, Livro L)
{
     v[n] = L;
     n++;
    cout << "Operação realizada com sucesso.";
}
 
implementa a operação de :
		
	
	Busca
	
	Substituição
	
	Inicialização
	 
	Inserção
	 
	Ordenação por inserção
	
	 
	Ref.: 201709322794
		
	
	 3a Questão
	
	
	
	
	As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
		
	
	Pilha Encadeada
	 
	Lista Sequencial
	 
	Lista Encadeada
	
	Pilha Sequencial
	
	Fila Sequencial
	
	 
	Ref.: 201710175704
		
	
	 4a Questão
	
	
	
	
	Analise a função abaixo, considerando o tipo Livro  e marque a opção correta.
int R2D2 (Livro v[ ], int c, int n)  {
for (int i = 0; i < n; i++)
    if (v[i].codigo == c)
       return i;
         return -1;
}
onde 
struct Livro  {
          int codigo;
          char autor[30];
 };
		
	
	Retorna -1 se o valor de c estiver em v.
	 
	Retorna a posição do valor c em v , se o valor c for encontrado em v.
	
	Retorna o valor de c se o valor n foi encontrado.
	
	Ocorre erro na função R2D2 se o valor de c não estiver sido encontrado em v.
	
	Retorna -1 se o valor de n foi encontrado.
	
Explicação:
Questão objetiva. A função realiza uma busca sequencial.
A cada rodada do loop é verificado se o código de v[i] é igual ao valor de c, passado como parâmetro. Se o código estiver em v[i], então a posição i é retornada. Se o teste do if nunca tiver sucesso, então, sairemos do for sem sucesso e ao final, será retornado -1, que não pode ser índice ou posição de qualquer valor no vetor.
	
	 
	Ref.: 201709120377
		
	
	 5a Questão
	
	
	
	
	Com relação as listas lineares sequenciais:
I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array.
II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice.
III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes.
		
	 
	Apenas as afirmações I e II estão corretas.
	
	Apenas as afirmações II e III estão corretas.
	 
	Apenas a afirmação I está correta.
	
	Apenas as afirmações I e III estão corretas.
	
	Apenas as afirmações II está corretas.
	
	 
	Ref.: 201709325278
		
	
	 6a Questão
	
	
	
	
	
		
	
	for (int i = 0; i < n; i++)
   cout << L.matricula[i] << "  "  << L.nome[i] << endl;
	
	for (int i = 0; i < n; i++)
   cout << L.matricula << "  "  << L.nome << endl;
	 
	for (int i = 0; i < n; i++)
   cout << L[i] << endl;
	
	for (int i = 0; i < n; i++)
   cout << L[i].matricula << "  "  << L[i].nome[30] << endl;
	 
	for (int i = 0; i < n; i++)
   cout << L[i].matricula << "  "  << L[i].nome << endl;
	
	 
	Ref.: 201709187656
		
	
	 7a Questão
	
	
	
	
	São métodos ou algoritmos conhecidos de ordenação de dados por troca:
		
	
	ordenação shell e hashing.
	 
	bubble sort e quicksort.
	
	hashing e bubble sort.
	
	quicksort e hashing.
	
	busca por ordenação e ordenação shell.
	
Explicação:
Bubble sort é o algoritmo mais simples, mas o menos eficientes. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes.
 
O Quicksort é o algoritmo mais eficiente na ordenação por comparação. Nele se escolhe um elemento chamado de pivô, a partir disto é organizada a lista para que todos os números anteriores a ele sejam menores que ele, e todos os números posteriores a ele sejam maiores que ele. Ao final desse processo o número pivô já está em sua posição final. Os dois grupos desordenados recursivamente sofreram o mesmo processo até que a lista esteja ordenada.
 
	
	 
	Ref.: 201710242770
		
	
	 8a Questão
	
	
	
	
	Considere as seguintes afirmações: I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100]. II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor. III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
		
	
	Estão corretas apenas as afirmativas I e III.
	 
	Está correta apenas a afirmativa I.
	 
	Nenhuma afirmação está correta.
	
	Está correta apenas a afirmativa II.
	
	Estão corretas apenas as afirmativas I e II.
	
Explicação:
Analisando cada afirmativa :
  I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100].
 Falso.  Podemos ter matrizes unidimensionais, tridimensionais, etc...
 II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor.
Falso.  Em C++ o índice inicial é zero. Logo, A[2] é o elemento de índice 2, ou seja, o 3o. elemento do vetor.
III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Falso. B pode armazenar no máximo 29 caracteres que sejam dados, pois existe uma área para o caracter nulo.
Logo, todas as opções são falsas.

Outros materiais