Buscar

Estrutura de Dados AV 11-2014

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

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

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ê viu 3, do total de 10 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

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

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ê viu 6, do total de 10 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

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

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ê viu 9, do total de 10 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

Prévia do material em texto

Período de não visualização da prova: desde 06/11/2014 até 25/11/2014. 
 
 
 
Os métodos de ordenação são muito utilizados para facilitar a recuperação posterior de itens ordenados. 
Existem vários métodos de ordenação, por esse motivo, assinale corretamente a alternativa que mostra o nome 
do método que utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método mais simples. 
 
 
 
Binária 
 
Seleção 
 Bolha 
 
Inserção 
 
Hash 
 
 
 2a Questão (Ref.: 201107307583) Pontos: 0,0 / 0,5 
Um programador recebeu a tarefa de construir um programa que receba uma cadeia de caracteres e verifique 
se esta cadeia de caracteres é um PALÍNDROME, sabendo-se que um PALÍNDROME apresenta a mesma 
sequência de caracteres da esquerda pra direita, quanto da direita para esquerda, marque a opção que possui a 
estrutura de dados mais adequada a este programa. 
 
 
 
Grafos 
 
Árvores 
 Pilha Sequencial 
 Lista Sequencial 
 
Fila Sequencial 
 
 
 3a Questão (Ref.: 201107290684) Pontos: 0,5 / 0,5 
 
 Navegadores para internet armazenam os últimos endereços visitados em uma estrutura de 
dados. Cada vez que um novo site é visitado, o endereço do site é adicionado na estrutura de 
endereços. Quando se aciona o retorno ("back"), o navegador permite que o usuário retorne no 
último site visitado e retira o endereço do site da estrutura de dados. 
Assinale a estrutura de dados mais adequada para este problema. 
 
 
 
fila 
 
grafo 
 pilha 
 
árvore 
 
lista 
 
 
 4a Questão (Ref.: 201107153152) Pontos: 0,5 / 0,5 
Assinale a opção certa. 
 Quando não se escreve o protótipo de uma função ... 
 
 
 
A chamada da função poderá ser feita em qualquer hipótese. 
 
A chamada da função não poderá ser feita em qualquer hipótese. 
 É preciso definir a função antes do programa principal. 
 
A definição da função deverá ser escrita, obrigatoriamente, após o programa principal. 
 
O programa não funcionará de forma alguma. 
 
 
 5a Questão (Ref.: 201107077547) Pontos: 0,0 / 0,5 
No contexto de estrutura de dados, uma pilha é: 
 
 
 
um tipo de lista linear em que as operações de inserção são realizadas em uma extremidade e as 
operações de remoção são realizadas em outra extremidade. 
 um tipo de lista linear em que as operações de inserção e remoção são realizadas na extremidade 
denominada topo. 
 
um tipo de lista linear em que as operações de inserção e remoção são realizadas aleatoriamente. 
 uma lista do tipo FIFO. 
 
uma lista do tipo LILO. 
 
 
 6a Questão (Ref.: 201107325003) Pontos: 0,0 / 1,0 
Tenho uma lista encadeada de processos para ler e despachar, mas obedeço a ordem de chegada, ou seja, 
o primeiro processo que chega é o primeiro processo a ser atendido por mim. Sabendo que cada processo 
é do tipo Processo, previamente definido e que a lista é do tipo Lista, assinale a opção que corretamente 
implementa a retirada de um processo da lista, que pode ter um ou mais processos. 
 Considere p um ponteiro para o primeiro nó da lista e ainda, 
struct Lista { 
 Processo p; 
 struct Lista *link; 
 }; 
 
 
 Lista *retirar(Lista *p) 
{ 
 delete p; 
 p = p->link; 
 return p; 
} 
 Lista retirar(Lista *p) 
{ 
 Lista *aux = p; 
 p = p->link; 
 return p; 
} 
 Lista *retirar(Lista *p) 
{ 
 Lista *aux = p; 
 p = p->link; 
 delete aux; 
 return p; 
} 
 Lista *retirar(Lista *p) 
{ 
 Lista *aux = p; 
 while (p->link->link !=NULL) 
 p = p->link; 
 delete p->link; 
 p->link = NULL; 
 return p; 
} 
 Lista *retirar(Lista *p) 
{ 
 Lista *aux = p; 
 while (p->link->link !=NULL) 
 p = p->link; 
 p->link = NULL; 
 return p; 
} 
 
 
 7a Questão (Ref.: 201107089056) Pontos: 0,5 / 0,5 
Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação 
deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. Marque a alternativa correta 
que cita o algoritmo cuja descrição é: "considera cada elemento uma vez inserindo-o em seu lugar correto entre 
os elementos que já estão em ordem". E o seu passo a passo pode ser descrito como: "o elemento é inserido 
entre os ordenados movendo-se os elementos maiores que ele uma posição para a direita e posteriormente 
inserindo-o na posição vaga". 
 
 
 Inserção 
 
Bolha 
 
Seleção 
 
MergeSort 
 
QuickSort 
 
 
 8a Questão (Ref.: 201107624559) Pontos: 0,0 / 1,0 
Na Alocação dinâmica, temos alguma regras a considerar. Leia atentamente as afirmativas abaixo e assinale 
a correta. 
 
I Alocou com new, desaloca com free 
II Alocou com new[], desaloca com delete 
III Alocou com new[], desaloca com delete[] 
IV Alocou com new[], desaloca com free[] 
V Alocou com new, desaloca com delete 
 
 
 I, II, III e V estão corretas 
 III e V estão corretas 
 II e V estão corretas 
 I e III estão corretas 
 I e IV estão corretas 
 
 
 9a Questão (Ref.: 201107114128) 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[], int w[], int z[], int nv, int nw, int &n){ bool achou = false; for(i=0;i<nv;i++) 
for(j=o;j<nw;j++) if(v[i]==v[j]){ n = achou; return i; } return -1; } 
 
 
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; 
} 
 
 
Fundamentação do(a) Professor(a): DEveria montar o vetor z com os elementos comuns a v e w, mas não fez. 
Veja que deveria retornar true ou false. 
 
 
 10a Questão (Ref.: 201107292423) Pontos: 0,0 / 1,5 
 Faça uma função em C++ para criar uma lista duplamente encadeada com um nó e 
armazenar neste nó o valor 100. Note que deverá ser retornado o ponteiro para o nó 
criado. Considere 
 struct nodupla { 
 int dado; 
 struct *dlink, *elink; 
 }; 
 
e o seguinte protótipo : nodupla *cria(); 
 
 
 
Resposta: nodupla *cria = new nodupla{ p->nodupla=*dlink p->*dlink->*elink } 
 
 
Gabarito: 
nodupla *cria() 
{ 
 nodupla *novo; 
 
 novo = new nodupla; 
 novo->dado = 100; 
 novo->elink = novo->dlink = NULL; 
 return novo; 
 
}

Outros materiais