Buscar

Exércicio 05 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 4 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

Prévia do material em texto

ESTRUTURA DE DADOS
 5a aula
 Lupa 
Vídeo
 
PPT
 
MP3
 
 
Exercício: CCT0753_EX_A5_201801153345_V1 22/03/2019 (Finaliz.)
Aluno(a): JORGIVALDO NOGUEIRA LEAL 2019.1 EAD
Disciplina: CCT0753 - ESTRUTURA DE DADOS 201801153345
 
 1a Questão
Considere as seguintes afirmações sobre Listas Sequenciais:
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados
armazenados.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da
mesma.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Marque a opção que contém apenas todas as afirmações verdadeiras:
I, II, III, IV
I, III, IV
I, II
I, II, III
 I, II, IV
 
 
Explicação:
Analisando cada afirmativa :
 
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
Verdadeiro. As inserções vão ocorrendo do início do vetor (índice zero) em direção ao fim.
 
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados
 armazenados.
Verdadeiro. Armazenam-se os dados e controla-se a quantidade de dados na lista.
 
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados 
 da mesma.
Falso. A inserção pode ser no início, no meio ou no final da lista. Na verdade, pode ocorrer inserção e remoção em qualquer 
posição.
 
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Verdadeiro. Uma lista pode ou não ter dados repetidos.
 
Resposta certa : As afirmativas I, II, IV estão certas
 
 
 2a Questão
Em relação às listas sequenciais, considere as seguintes afirmações:
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da lista;
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a quantidade de dados
da lista;
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Assinale a opção que contém apenas todas as afirmativas corretas:
I, II
I, II, III
 I, II, IV
II, III, IV
I, II, III, IV
 
 
Explicação:
Analisando cada afirmativa :
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
Verdadeira. O vetor é sequencial e tem tamanho pré-definido.
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da lista;
Verdadeira.
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a quantidade de dados
da lista;
Falso, pois é possível inserirmos em qualquer posição da lista.
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Verdadeiro.
Logo, as afirmativas I, II e IV estão corretas
 
 
 3a 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 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.
 Apenas as afirmações I e II estão corretas.
Gabarito
 Coment.
 
 
 4a 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 Não Linear
Lista Linear Não Alocada
 Lista Linear Sequencial
Lista Linear Não Sequencial
Lista Linear de Alocação de Memória
 
 
 5a Questão
Considere uma lista com n livros, em que cada livro é modelado pela struct :
 
struct Livro {
 string �tulo, 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
Ordenação por inserção
Inicialização
 Inserção
Subs�tuição
Gabarito
 Coment.
 
 
 6a Questão
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.matricula << " " << L.nome << endl;
 for (int i = 0; i < n; i++)
 cout << L[i].matricula << " " << L[i].nome << endl;
for (int i = 0; i < n; i++)
 cout << L[i] << endl;
for (int i = 0; i < n; i++)
 cout << L.matricula[i] << " " << L.nome[i] << endl;
Gabarito
 Coment.
 
 
 7a Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
 bubble sort e quicksort.
ordenação shell e hashing.
hashing e bubble sort.
busca por ordenação e ordenação shell.
quicksort e hashing.
 
 
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.
 
 
 
 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á correta apenas a afirmativa I.
Estão corretas apenas as afirmativas I e II.
Está correta apenas a afirmativa II.
 Nenhuma afirmação está correta.
Estão corretas apenas as afirmativas I e III.
 
 
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