Prévia do material em texto
Disc.: ESTRUTURA DE DADOS
Acertos: 10,0 de 10,0 16/11/2020
1a
Questão
Acerto: 1,0 / 1,0
Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados mais adequada para
modelar este problema, visto que não há qualquer preocupação com ordem de chegada ou saída de aluno da turma.
Grafo
Pilha
Lista
Fila
Árvore
Respondido em 16/11/2020 19:27:48
2a
Questão
Acerto: 1,0 / 1,0
Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o
seguinte programa principal for executado? int main() { int n = 3; n = n + 2; dobro(n); cout << n; return 0; }
0
20
5
10
3
Respondido em 16/11/2020 19:30:59
Explicação:
A função não retorna valor, então o valor de "n" não é alterado permanecendo igual a 5.
3a
Questão
Acerto: 1,0 / 1,0
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e
verificando se o dado está no meio ou, antes do meio ou depois do meio.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e
verificando se o dado está no meio ou, antes do meio ou depois do meio.
Respondido em 16/11/2020 19:34:49
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de
elementos.
Só pode ocorrer, no entanto, se a lista não estiver cheia.
4a
Questão
Acerto: 1,0 / 1,0
Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros:
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
É sabido que a mesma retornaria o valor -1, porque:
Seria o retorno do while
Seria o retorno do segundo if
É a posição do elemento e no vetor v
É o módulo do valor de e
Porque ele não achou o elemento na coleção
Respondido em 16/11/2020 19:43:40
Explicação:
Veja que para retornar -1 o return m; não foi executado. E para o return m; não poder ser
executado, o teste if ( v[m] == e ) foi sempre falso. Logo, retornar -1 é o caso do elemento e = -6
não ser encontrado no vetor v.
5a
Questão
Acerto: 1,0 / 1,0
Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela
retornaria?
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
3
6
0
-1
4
Respondido em 16/11/2020 19:43:21
Explicação:
Analisando
int deciframe(int v[ ], int tam, int e) {
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] )
{ f = m - 1; }
else
{ i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que
ela retornaria?
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
Está procurando pelo valor e = -6. Como se sabe pelo estudo da busca binária e olhando o código
dado, temos que -6 não existe na lista então a função irá retornar -1 (vide última linha da função). SE
a busca tivesse sucesso, o teste do 1o. if no while seria verdadeiro e então o índice m de v seria
retornado. Mas não é o caso, pois -6 não foi encontrado.
6a
Questão
Acerto: 1,0 / 1,0
Em termos da estrutura de dados do tipo PILHA, a sequência de ações empilha(10), empilha(3), empilha(5),
empilha(8), desempilha(), desempilha(), empilha(20), promoveria a configuração da estrutura a partir do
topo :
10 3 5 8
20 3 10
5 8 20
20 10 3
20 3 5 8
Respondido em 16/11/2020 19:42:52
Explicação:
Ao empilharmos 10, 3, 5 e 8 temos a seguinte sequência 10 3 5 8, onde 8 está no topo da pilha e 10
foi o primeiro valor empilhado.
Ao ser executado desempilha(), o valor 8 é retirado da pilha, ficando o valor 5 no topo da pilha.
Ao ser executado mais um desempilha(), o valor 5 é retirado da pilha, ficando o 3 no topo da pilha.
Depois, a ser executado empilha(20), a pilha fica com a seguinte configuração :
10 3 20, onde 20 está no topo da pilha.
Para dar a sequência a partir do topo para baixo : 20 3 10
7a
Questão
Acerto: 1,0 / 1,0
Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes elementos: A, B, C, D,
exatamente nesta ordem. E em seguida realizarmos duas operações consecutivas de remoção na fila e
imediatamente inserirmos dois novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova
operação de remoção, o elemento que será removido desta fila sera o:
W
X
A
D
C
Respondido em 16/11/2020 19:43:32
Gabarito
Comentado
Gabarito
Comentado
Gabarito
Comentado
8a
Questão
Acerto: 1,0 / 1,0
Considere a função em C++ que manipula uma lista simplesmente encadeada :
void imprime (Lista *l) {
Lista* p;
for (p = l; p != NULL; p = p->prox)
cout <<"Info = " << p->info;
}
sendo
struct Lista {
int info;
struct Lista *prox;
};
Função que retira um elemento da lista
Função que percorre os elementos da lista
Função que verifica se lista está vazia
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
Função para liberar a lista
Função de busca
Respondido em 16/11/2020 19:48:16
Explicação:
Veja que existe um loop em que o ponteiro é inicializado e a cada rodada do for, imprime o dado da
lista e passa a apontar para o próximo nó da lista. Logo, a função percorre a lista.
>> Não poderia ser verificar lista vazia porque para isso teríamos que testar se o ponteiro é NULL.
>> Não pode ser busca, pois seria preciso testar cada elemento da lista. Se encontrasse deveria
retornar o endereço do nó, caso contrário deveria retornar NULL.
>> Para retirar elemento teríamos que usar delete, para liberar memória, entre outros. Logo, não pode
ser.
>> PAra liberar a lista teríamos que repetidamente usar delete, em um loop. Não pode ser.
9aQuestão
Acerto: 1,0 / 1,0
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo próximo nulo (null),
marque a alternativa que representa corretamente a operação de busca do último
nodo, a partir de um ponteiro pt apontado para o primeiro nodo da lista.
while(pt != null)pt=pt->próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
while(pt->próximo->proximo)pt=pt->próximo;
while(pt->próximo)pt=pt->próximo;
while(próximo)pt=próximo;
Respondido em 16/11/2020 19:48:25
Explicação:
O código será:
while(pt->próximo)pt=pt->próximo;
10a
Questão
Acerto: 1,0 / 1,0
Com relação à lista duplamente encadeada, é correto afirmar que :
A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda, pois
existem dois ponteiros.
Consome menos memória do que uma lista simplesmente encadeada, se tivermos uma
mesma aplicação.
A lista precisa ter sempre um ponteiro apontando para o 1º. nó
Não pode ser vazia.
Não pode haver remoções no meio da lista.
Respondido em 16/11/2020 19:52:26
Gabarito
Comentado
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=213769004&cod_prova=4321288880&f_cod_disc=
javascript:abre_colabore('38403','213769004','4321288880');