Buscar

AV 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 6 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 6 páginas

Prévia do material em texto

Fechar 
 
Avaliação: ESTRUTURA DE DADOS 
Tipo de Avaliação: AV 
Aluno: 
Professor: JANE TAVARES ALVAREZ DA SILVA 
 
Nota da Prova: 3,0 Nota de Partic.: 2 Data: 
 
 
 1a Questão (Ref.: 201201976729) Pontos: 0,5 / 1,5 
 Os agentes Leo e Lia receberam sequências de números de seus contatos. Para 
saberem qual o próximo passo da missão, precisam descobrir que números se repetem 
nas sequências recebidas por cada um. 
 Faça uma função que receba dois vetores v e w de inteiros como parâmetros e gere um vetor z, 
resultante da interseção entre v e w. 
Protótipo da função : 
 bool intersecao(int v[ ], int w[ ], int z [ ], int nv , int nw , int &n); 
onde nv: quantidade de elementos em v 
 nw : quantidade de elementos em w 
 n : quantidade de elementos no vetor z 
Note : 
 Inicialmente n vale zero. 
 Deverá ser retornado true (sucesso na interseção) ou false (fracasso na interseção). 
 
 
Resposta: bool intersecao(int v[5], int w[5], int z[5], int nv, int nw, int &n) { while (i=0; i <= 5;) { for (i 
<=5;i=0;i++) { if (v[i] == w[i]) z[i] = v[i]; } } } 
 
 
Gabarito: 
bool intersecao(int v[], int w[], int inter[], int nv , int nw , int &n) { 
bool achou = false; 
for (int i = 0; i < nv; i++) 
for (int j = 0; j < nw; j++) 
if (v[i] == w[j]) { 
inter[n] = v[i]; 
achou = true; 
n++; 
} 
return achou; 
} 
 
 
 
 2a Questão (Ref.: 201202155032) Pontos: 0,0 / 1,5 
 Faça uma função em C++ para imprimir os dados de uma lista duplamente encadeada não 
vazia. Considere 
 struct nodupla { 
 int dado; 
 struct *dlink, //ponteiro para o nó à direita 
 *elink; //ponteiro para o nó à esquerda 
 }; 
 
e o seguinte protótipo : void mostrar(nodupla *p); 
 
Considere que p aponta para o 1o. nó da lista à esquerda. 
 
 
Resposta: void mostrar(nodupla *p) { cout << nodupla.dado; cout << nodupla.*dlink; cout << nodupla.*elink; 
} 
 
 
Gabarito: 
void mostrar(nodupla *p) 
{ 
 while (p != NULL) 
 { 
 cout << p->dado << " "; 
 p = p->dlink; 
 } 
} 
 
 
 
 3a Questão (Ref.: 201201940157) Pontos: 0,5 / 0,5 
Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada 
da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a 
variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre 
do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global 
quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência. 
Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as 
afirmações verdadeiras. 
 
 somente a alternativa I. 
 
II e III. 
 
somente a alternativa e II. 
 
I e II. 
 
I e III. 
 
 
 
 4a Questão (Ref.: 201202157733) Pontos: 0,0 / 0,5 
Analise as afirmativas abaixo e selecione a alternativa correta. 
 
I Algumas aplicações da estrutura de dados grafo são: Diagrama de Entidade 
Relacionamento e Redes de computadores. 
 
II Árvore e lista duplamente encadeada são estruturas não lineares. 
III A Fila é uma estrutura não linear e a inserção de um elemento acontece ao 
final. 
IV A Lista é uma das estruturas de dados mais simples, mas não se pode ordená-
la. 
 
V O uso de ponteiros é fundamental para construção de listas encadeadas. 
 
 I , II e IV são verdadeiras 
 I e V são verdadeiras 
 II E IV são verdadeiras 
 II e V são verdadeiras 
 III e V são verdadeiras 
 
 
 
 5a Questão (Ref.: 201201951653) Pontos: 0,5 / 0,5 
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a busca em vetores, e requer 
acesso aleatório aos elementos desta estrutura e parte do pressuposto de que os dados do vetor estejam 
ordenados e utiliza a técnica de divisão e conquista comparando o elemento desejado com o elemento do meio 
do vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a busca termina. Caso 
contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior 
do vetor. E se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. O 
algoritmo que utiliza esta metodologia é: 
 
 
Inserção 
 
Bolha 
 
Pesquisa sequencial 
 
Seleção 
 Pesquisa binária 
 
 
 
 6a Questão (Ref.: 201201948596) Pontos: 0,5 / 0,5 
O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de 
ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos 
os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do 
elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de: 
 
 
Binária 
 
Inserção 
 Seleção 
 
Hash 
 
Bolha 
 
 
 
 7a Questão (Ref.: 201201948079) Pontos: 0,5 / 0,5 
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de: 
 
 Pilha 
 
Ponteiro 
 
Fila 
 
Registro 
 
Loop 
 
 
 
 8a Questão (Ref.: 201202150863) Pontos: 0,5 / 0,5 
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em 
muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida 
na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas 
duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a 
sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia: 
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ). 
Quais valores restarão na pilha? 
 
 
Apenas o 2 
 Nenhum, a pilha estará vazia. 
 
10 e 2 
 
7 e 2 
 
Apenas o 10 
 
 
 
 9a Questão (Ref.: 201202153509) Pontos: 0,0 / 1,0 
 
 
 void enfileirar(Fila F, int valor) { 
 if (F.fim == n) 
 cout << "Fila cheia\n"; 
 else { 
 F.fim++; 
 F.v[F.fim] = valor; 
 } 
} 
 void enfileirar(Fila F, int valor) { 
 if (F.fim == n - 1) 
 cout << "Fila cheia\n"; 
 else { 
 F.fim++; 
 F.v[F.fim] = valor; 
 } 
} 
 void enfileirar(Fila &F, int valor) { 
 if (F.fim == n - 1) 
 cout << "Fila cheia\n"; 
 else 
 F.v[F.fim] = valor; 
 } 
 void enfileirar(Fila &F, int valor) { 
 if (F.fim == n - 1) 
 cout << "Fila cheia\n"; 
 else { 
 F.fim++; 
 F.v[F.fim] = valor; 
 } 
} 
 void enfileirar(Fila &F, int valor) { 
 if (fim == n - 1) 
 cout << "Fila cheia\n"; 
 else { 
 fim++; 
 v[fim] = valor; 
 } 
} 
 
 
 
 10a Questão (Ref.: 201201940202) Pontos: 0,0 / 1,0 
Em relação às estruturas de dados, é correto afirmar: 
 
 
Nos sistemas operacionais, a execução dos processos concorrentes ocorre segundo os princípios da 
estrutura FILO. 
 
LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, duplamente 
encadeada. 
 LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, sem disciplina 
de acesso, onde o primeiroelemento a entrar é o último a sair. 
 Guardar endereço de memória em "nós", normalmente identificados por previous ou next, é uma 
característica presente nas listas duplamente encadeadas. 
 
Um grafo com um único vértice e sem arestas é conhecido como dígrafo. 
 
 
 
Período de não visualização da prova: desde 30/05/2014 até 16/06/2014.

Outros materiais