Buscar

Avaliação I - Estrutura de dados (Uniasselvi)

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 5 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

Prévia do material em texto

Prova Impressa
GABARITO | Avaliação I - Individual (Cod.:955135)
Peso da Avaliação 2,00
Prova 82601662
Qtd. de Questões 10
Acertos/Erros 9/1
Nota 9,00
Imagine um restaurante no qual, a todo momento, clientes deixam pratos sujos para serem lavados. Geralmente, 
um ou mais garçons recolhem os pratos e os depositam na cozinha, cada prato em cima do prato anterior, 
formando uma estrutura conhecida como pilha.
Sabendo que o conceito de pilha pode ser transportado para o contexto da análise de sistemas, analise as 
afirmativas a seguir:
I. As pilhas são um tipo especial de listas cuja regra segue os princípios FIFO.
II. O novo elemento, quando é adicionado à pilha, de maneira geral, deve-se incrementar o valor de seu topo.
III. A implementação de uma pilha estática dispensa o auxílio das estruturas conhecidas genericamente por "Nós".
É correto o que se afirma em:
A III, apenas.
B I, II e III.
C II e III, apenas.
D I, apenas.
E I e II, apenas.
Tanto a fila como a pilha são conjuntos ordenados de itens, porém ambas se diferenciam pelas regras de entrada e 
saída. Na pilha, a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. Na fila, a 
entrada e a saída ocorrem em lugares opostos: a entrada acontece no final da fila e a saída no seu início. No caso 
de uma variável simples, a princípio, armazena-se apenas uma informação de um determinado tipo. Para 
armazenar mais de um elemento em uma variável, podemos usar estruturas homogêneas ou heterogêneas.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage 
Learning, 2016.
A respeito das estruturas de dados mencionadas, assinale a alternativa correta:
A As filas e pilhas podem armazenar elementos de um mesmo tipo, mudando apenas as funções de inclusão e
remoção das filas para as pilhas.
B A função de desempilhar retira da pilha sempre o último elemento, a não ser que um índice seja indicado
por parâmetro.
C Os registros são estruturas de dados para armazenamento heterogêneo, que possuem os dados a serem
armazenados e um ponteiro para o próximo elemento.
D As pilhas são estruturas homogêneas, de acesso direto, onde podemos armazenar apenas elementos de tipos
diferentes, sem uma ordem predeterminada.
 VOLTAR
A+ Alterar modo de visualização
1
Revisar Conteúdo do Livro
2
E A função de desempilhar retira da pilha sempre o primeiro elemento, a não ser que um índice seja indicado
por parâmetro.
Após estudar ponteiros, é possível criarmos estruturas que aumentam ou diminuem conforme a necessidade. Esse 
é o caso de listas encadeadas, que podem ser tratadas em diversas formas, por exemplo como pilha, fila, 
duplamente encadeada, circulares e assim por diante. Com base em seus estudos, observe o trecho de código a 
seguir:
01 - void nomeDaFuncao(struct ptr_no *lista, int dado){
02 - struct ptr_no *atual;
03 - atual = (struct ptr_no*) malloc(sizeof(struct ptr_no));
04 - while((lista->dado != dado)){
05 - if(lista->proximo == NULL){
06 - break;
07 - }
08 - atual = lista;
09 - lista = lista->proximo;
10 - }
11 - if(lista->dado == dado){
12 - atual->proximo = lista->proximo;
13 - }
14 - }
Considere que, durante a invocação da referida função, o parâmetro lista recebe um ponteiro que aponta para o 
primeiro elemento da estrutura de dados. Ainda, leve em consideração que a struct ptr_no possui dois campos, a 
saber: dado, do tipo inteiro; e proximo, um ponteiro do tipo struct ptr_no. Assinale a alternativa correta que 
descreve a funcionalidade executada pela função apresentada:
A Insere um item da fila.
B Remove um item da pilha.
C Remove um item da fila.
D Insere um item na lista encadeada.
E Remove um item da lista encadeada.
Analise o trecho de código apresentado:
01 - struct no {
02 - int dado;
03 - struct no *proximo;
04 - };
05 -
06 - typedef no *ptr_no;
07 -
08 - ptr_no lista;
09 -
10 - void lista_operacao(ptr_no lista, int valor){
11 - while(lista->proximo != NULL){
12 - lista = lista->proximo;
13 - }
14 - lista->proximo = (ptr_no) malloc(sizeof(no));
15 - lista = lista->proximo;
16 - lista->dado = valor;
17 - lista->proximo = NULL;
18 - }
Assinale a alternativa correta com relação ao objetivo da função lista_operacao():
A Inserir um nó no final da lista.
B Remover o primeiro nó da lista.
3
4
C Remover o último nó da lista.
D Inserir um nó no início da lista.
E Inserir dois nós no inicio da lista.
Um programador criou uma lista dinâmica com base na estrutura apresentada a seguir:
 
struct no {
 int dado;
 struct no *proximo;
};
 
struct lista{
 struct no *inicio;
}
 
struct lista l;
O programador criou um programa para percorrer toda a lista, fazendo com que um ponteiro ptr, iterador, seja 
inicializado em l->inicio e incrementado até atingir o final da respectiva lista. No critério de parada da estrutura 
de repetição utilizada para percorrer a lista, o programador deve esperar que ptr->proximo seja igual a que valor 
ou identificar o final da lista como?
A Nulo.
B '\0'.
C END.
D l->final.
E NULL.
Pode-se imaginar uma pilha ou fila nas quais seus elementos contivessem, além do dado armazenado, o endereço 
de referência para o próximo elemento. Para a estrutura de dados que se organiza dessa maneira, dá-se o nome de 
lista encadeada.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage 
Learning, 2016.
Sobre a implementação de listas, avalie as asserções a seguir e a relação proposta entre elas:
I. A utilização de estruturas de dados que podem utilizar alocação dinâmica de memória, como as listas 
duplamente encadeadas, mostra-se vantajosa, principalmente por evitar desperdício de memória.
 
PORQUE
 
II. A memória física de um computador é como um grande vetor estático, que pode ser vasculhado à procura de 
posições livres para se realizar alocação de memória em tempo de compilação.
A respeito dessas asserções, assinale a opção correta:
A A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
B As asserções I e II são falsas.
C As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
5
6
D As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
E A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. Antes de entrar 
nas nuances técnicas sobre pilhas, vamos abstrair o seu conceito para uma situação real.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage 
Learning, 2016.
As funções de desempilhar e de empilhar são comumente chamadas de pop() e push(), respectivamente. 
Considere a seguinte pilha de números inteiros:
PILHA:
INÍCIO -> 5, 2, 15, 3, 9, 8, 4, 12, 10, 7, 1, 11 <-TOPO
Sobre essa pilha, execute a seguinte sequência de operações:
pop(); pop(); pop(); push(6); push(13); pop(); push(14); pop(); pop();
Assinale o elemento que será o próximo a ser removido se for chamada a função pop() mais uma vez:
A 8.
B 9.
C 11.
D 7.
E 10.
Considere o seguinte cenário:
Você está visitando um médico para um check-up. Há muitas pessoas na clínica. Uma senhora está digitando os 
nomes de todas as pessoas em um arquivo. A pessoa que chegar mais cedo será atendida primeiro. Quando o 
médico está livre, ele chama o próximo paciente na sequência de chegada.
Sobre o exposto, avalie as asserções a seguir e a relação proposta entre elas:
I. O cenário representa a estrutura Fila porque segue o método primeiro que entra é o primeiro que sai.
PORQUE
II. Em uma fila, adicionamos elementos na parte de trás e os removemos na frente.
A respeito dessas asserções, assinale a opção correta:
A A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
B As asserções I e II são falsas.C A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
D As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
E As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
Tanto a fila como a pilha são conjuntos ordenados de itens, porém ambas se diferenciam pelas regras de entrada e 
saída. Na pilha, a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. Na fila, a 
entrada e a saída ocorrem em lugares opostos: a entrada acontece no final da fila e a saída no seu início.
7
8
9
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage 
Learning, 2016.
A respeito de tais estruturas de dados, assinale a alternativa correta:
A A função de desempilhar retira da pilha sempre o primeiro elemento, a não ser que um índice seja indicado
por parâmetro.
B As pilhas são estruturas homogêneas, de acesso direto, onde podemos armazenar elementos de tipos
diferentes, sem uma ordem especificada.
C A função de desempilhar retira da pilha sempre o último elemento, a não ser que um índice seja indicado
por parâmetro.
D Os registros são estruturas de dados para armazenamento heterogêneo, que possuem os dados a serem
armazenados e um ponteiro para o próximo elemento.
E As filas e pilhas podem armazenar dados do mesmo tipo, mudando apenas as regras para implementar suas
respectivas funções de inserção e remoção de elementos.
Os ponteiros estão entre as estruturas de dados mais importantes das linguagens de programação, pois graças a 
eles é possível fazer alocação dinâmica de memória e utilizar estruturas de dados mais complexas.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage 
Learning, 2016.
Sobre ponteiros, assinale a alternativa correta:
A Armazena o endereço de uma posição de memória.
B Armazena o valor de uma variável e sua posição no vetor.
C É o recurso mais utilizado por programadores iniciantes.
D Permite apenas alocação dinâmica de memória.
E Não pode ser utilizado como parâmetro de uma função.
10
Imprimir

Mais conteúdos dessa disciplina