Buscar

Prova Objetiva Estrutura de Dados I

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

Questão 1/12 - Estrutura de Dados 
O segundo assunto de nossa disciplina diz respeito a algoritmos de ordenação de dados. 
Acerca deste assunto, assinale a alternativa INCORRETA: 
 
 E 
A lógica algorítmica de cada método de ordenação difere para cada tipo de 
estrutura de dados que se deseja manipular. 
 
Questão 2/12 - Estrutura de Dados 
Na AULA 4 estudamos as diferentes consultas em árvores binárias. Observe o código 
de consulta em ordem na árvore, assumindo que os dados cadastrados são do tipo 
inteiro. 
 
1. void Consultar_EmOrdem(ElementoDaArvoreBinaria * ElementoVarredura) 
2. { 
3. if (ElementoVarredura) 
4. { 
5. Consultar_EmOrdem(ElementoVarredura->esquerda); 
6. printf("%d\t", ElementoVarredura->dado); 
7. Consultar_EmOrdem(ElementoVarredura->direita); 
8. } 
9. } 
Acerca de consulta em árvore e do código acima, alternativa CORRETA. 
 
 E 
Se quiséssemos imprimir os elementos da árvore de maneira decrescente, ou 
seja, do maior para o menor, poderíamos trocar as linhas 5 e 7. 
 
Questão 3/12 - Estrutura de Dados 
Na AULA 4 estudamos a inserção em uma árvore binária. Abaixo temos um código em 
linguagem C com uma função de inserção na árvore binária, considerando ela como 
uma Binary Search Tree (BST). 
 
1. void Inserir(ElementoDaArvoreBinaria ** ElementoVarredura, int num) { 
2. 
3. if (*ElementoVarredura == NULL) 
4. { 
5. ElementoDaArvoreBinaria *NovoElemento = NULL; 
6. NovoElemento = (ElementoDaArvoreBinaria 
*)malloc(sizeof(ElementoDaArvoreBinaria)); 
7. NovoElemento->esquerda = NULL; 
8. NovoElemento->direita = NULL; 
9. 
10. NovoElemento->dado = num; 
11. *ElementoVarredura = NovoElemento; 
12. return; 
13. } 
14. 
15. if (num < (*ElementoVarredura)->dado) 
16. { 
17. Inserir(&(*ElementoVarredura)->esquerda, num); 
18. } 
19. else 
20. { 
21. if (num >(*ElementoVarredura)->dado) 
22. { 
23. Inserir(&(*ElementoVarredura)->direita, num); 
24. } 
25. } 
26. } 
Acerca de árvores binárias e do código acima, assinale a alternativa CORRETA. 
 
 A 
Nas linhas 15 a 25 a função testa para qual ramo da árvore irá seguir, 
direito ou esquerdo, chamando novamente a função de inserção de forma 
recursiva. 
 
Questão 4/12 - Estrutura de Dados 
Uma implementação do algoritmo de ordenação do tipo bubble sort pode ser visto 
abaixo. As partes que envolvem impressão de dados na tela e leitura de dados foram 
omitidas para um melhor entendimento do que é necessário na questão. 
 
X[TAMANHOVETOR], i, j, aux: inteiro 
para i de 1 até TAMANHOVETOR faça 
 para j de 0 até (TAMANHOVETOR - 2) faça 
 se (X[j] > X[j + 1]) então 
 aux <- X[j] 
 X[j] <- X[j + 1] 
 X[j + 1] <- aux 
 fimse 
 fimpara 
fimpara 
Acerca deste algoritmo, assinale a alternativa CORRETA: 
 
 B 
As linhas de código que correspondem a troca dos valores usando uma 
variável auxiliar poderiam ser também escritas da seguinte maneira: 
aux <- X[j+1] 
X[j+1] <- X[j] 
X[j] <- aux 
 
Questão 5/12 - Estrutura de Dados 
No terceiro assunto da disciplina estudamos a estrutura de dados do tipo lista 
encadeada. O código abaixo representa a inserção em uma lista encadeada. 
 
1. NovoElemento->dado = numero 
2. se (Head == NULO) então 
3. Head = NovoElemento 
4. Head->prox = NULO 
5. Senão 
6. NovoElemento->prox = Head 
7. Head = NovoElemento 
8. fimse 
Considerando que NovoElemento é um novo elemento que será inserido nesta lista e 
Head caracteriza o primeiro elemento da lista. Assinale a alternativa CORRETA sobre 
este algoritmo. 
 
 C 
O algoritmo apresentado representa uma inserção no início de uma lista 
encadeada simples, pois a linha 6 mostra o novo elemento apontando para o 
Head. 
 
Questão 6/12 - Estrutura de Dados 
No terceiro assunto de nossa disciplina estudamos uma nova estrutura de dados 
denominada de LISTA ENCADEADA. Um tipo de lista encadeada é a chamada de 
LISTA ENCADEADA DUPLA, ou LISTA DUPLAMENTE ENCADEADA. 
Acerca de listas encadeadas simples, assinale a alternativa CORRETA: 
 
 C 
Uma lista encadeada dupla circular conterá em seu último elemento, o 
endereço do primeiro elemento da lista. E conterá no seu primeiro elemento, 
o endereço do último elemento da lista. Fechando dois círculos. 
 
Questão 7/12 - Estrutura de Dados 
No terceiro assunto de nossa disciplina estudamos uma nova estrutura de dados 
denominada de LISTA ENCADEADA. 
Acerca de listas encadeadas, assinale a alternativa CORRETA: 
 
 D 
Podemos localizar o próximo elemento da lista encadeada através do uso de 
uma variável que armazena o endereço do próximo elemento da lista. 
 
Questão 8/12 - Estrutura de Dados 
Na AULA 4 estudamos conceitos de árvores binárias. Acerca de árvores, assinale a 
alternativa abaixo: 
 
1. ElementoDaArvoreBinaria *NovoElemento = NULL; 
2. NovoElemento = (ElementoDaArvoreBinaria 
*)malloc(sizeof(ElementoDaArvoreBinaria)); 
3. NovoElemento->esquerda = NULL; 
4. NovoElemento->direita = NULL; 
5. 
6. NovoElemento->dado = num; 
7. *ElementoVarredura = NovoElemento; 
Acerca de árvores e seus aspectos construtivos, assinale a alternativa INCORRETA. 
 
 B 
Baseado no código acima, podemos afirmar com certeza que o registro que 
armazena cada elemento da árvore contém um dado do tipo inteiro e dois 
ponteiros. 
 
 
 
 
 
 
Questão 9/12 - Estrutura de Dados 
Na AULA 6 estudamos a estrutura de dados do tipo hash. 
Acerca de hashs, vetores e tipos de endereçamento, assinale a alternativa INCORRETA. 
 
 D 
O acesso a qualquer dado de um vetor com endereçamento direito é 
realizado com O(1), bem como o tempo de busca de uma informação neste 
vetor. 
 
Questão 10/12 - Estrutura de Dados 
No terceiro assunto de nossa disciplina estudamos estruturas de dados que se 
comportam como uma FILA. 
Acerca de FILAS, assinale a alternativa CORRETA: 
 
 D 
Em uma fila trabalhamos com o conceito de: “o primeiro que entra é o 
primeiro que sai”. 
 
Questão 11/12 - Estrutura de Dados (questão opcional) 
Na AULA 5 estudamos conceitos de grafos. Abaixo temos uma imagem de um grafo. 
 
Acerca do grafo acima, assinale a alternativa CORRETA. 
 
 C Este grafo é do tipo completo. 
 
Questão 12/12 - Estrutura de Dados (questão opcional) 
O algoritmo de ordenação por intercalação, também conhecido como merge sort, é um 
dos algoritmos estudados na AULA 2. 
Acerca deste algoritmo, assinale a alternativa CORRETA. 
 
 D 
A intercalação é realizada utilizando um vetor auxiliar para ir 
armazenando os dados que vão sendo ordenados naquele momento.

Continue navegando