Buscar

4 exercicios 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 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

18/01/2022 Primeiro Caderno - Evernote
https://www.evernote.com/client/web?login=true#?b=5ac9b6e0-84a0-4170-a6dc-a5efbf353acc&n=45e42d83-8b0a-cd53-9cd9-7d7d4bf35aa8& 1/5
UNIDADE 4 - Estrutura de Dados
UNIDADE 4 - Estrutura de Dados
Questão 1
Um mecanismo utilizado para organizar nossa informação e prover operações convenientes e eficientes 
para acessá-la e manipulá-la é conhecido como estrutura de dados. Diversos tipos de estruturas de dados 
têm sido propostas e o conhecimento das características dessas estruturas é um fator importante para a 
escolha da estrutura que melhor se encaixa na solução de um determinado problema.
 
Neste sentido, o almoxarife de um órgão pediu ao técnico de informática que elaborasse um sistema 
de estoque que, para cada saída de material, considerasse o material que há mais tempo houvera dado 
entrada no almoxarifado.
O técnico deve desenvolver um algoritmo para tratar com uma estrutura de dados de qual tipo? Assinale a 
alternativa correta.
Questão 2
Uma lista simplesmente ligada consiste em uma sequência de elementos, denominados nós. Cada nó 
possui uma informação e um ponteiro para o próximo nó da lista. O último nó da lista aponta para NULL, 
representando que não existe um próximo nó na lista. A lista, propriamente dita, é representada apenas por 
um ponteiro para o primeiro nó dessa lista, chamado de "Início". Uma lista simplesmente ligada tem esse 
nome, pois cada nó da estrutura possui apenas um ponteiro para o próximo nó da lista.
 
Com base no que foi exposto, analise o código da função "func" a seguir:
 
int func(struct Lista* li, int n) {
assert(li != NULL);
struct No* aux = li->inicio;
int x = 0;
while(aux != NULL) {
if (aux->info == n) {
x += 1;
}
Pilha.
Lista simplesmente encadeada.
Lista duplamente encadeada.
Fila.
Pilha dupla.
18/01/2022 Primeiro Caderno - Evernote
https://www.evernote.com/client/web?login=true#?b=5ac9b6e0-84a0-4170-a6dc-a5efbf353acc&n=45e42d83-8b0a-cd53-9cd9-7d7d4bf35aa8& 2/5
aux = aux->proximo;
}
return x;
}
Assinale a alternativa que representa corretamente o objetivo da função "func".
Questão 3
Pilhas e filas são dois tipos fundamentais de estruturas de dados. Dentre as principais operações dessas 
estruturas, estão:
enfileirar(f, item): também conhecida como 
enqueue, enfileira o elemento “item” no final da fila “f”;
desenfileirar(f): também conhecida como dequeue, desenfileira o elemento do início da fila “f” e o retorna;
empilhar(p, item): também conhecida como push, essa função é responsável por empilhar um “item” no 
topo da pilha “p”;
desempilhar(p): também conhecida como pop, essa função é responsável por desempilhar o elemento do 
topo da pilha “p” e retorná-lo.
 
Considere a pilha "p" e a fila "f", tais como:
 
Pilha "p":
M <- topo
N
O
P
 
Fila "f": 
Início -> [A B C D] <- Fim
Calcular e retornar a soma de todos os elementos da lista "li".
Calcular e retornar a soma de todos os elementos iguais a "n" na lista "li".
Calcular e retornar a soma de todos os elementos diferentes de "n" na lista "li".
Calcular e retornar a quantidade de elementos iguais a "n" na lista "li".
Calcular e retornar a quantidade de elementos diferentes de "n" na lista "li".
18/01/2022 Primeiro Caderno - Evernote
https://www.evernote.com/client/web?login=true#?b=5ac9b6e0-84a0-4170-a6dc-a5efbf353acc&n=45e42d83-8b0a-cd53-9cd9-7d7d4bf35aa8& 3/5
Início > [A, B, C, D] < Fim
 
Com base no que foi exposto, analise o código a seguir:
 
for(int i = 0; i < 4; i++) {
empilhar(p, desempilhar(p));
enfileirar(f, desenfileirar(f));
}
Ao final da execução do código apresentado, os estados finais da pilha "p" e da fia "f" serão
Pilha "p":
M <- topo
N
O
P
 
Fila "f": 
Início -> [A, B, C, D] <- Fim
Pilha "p":
P <- topo
O
N
M
 
Fila "f": 
Início -> [D, C, B, A] <- Fim
Pilha "p":
M <- topo
N
O
P
 
Fila "f": 
Início -> [D, C, B, A] <- Fim
Pilha "p":
P <- topo
O
N
M
 
Fila "f": 
Início -> [A, B, C, D] <- Fim
Pilha "p":
M <- topo
N
18/01/2022 Primeiro Caderno - Evernote
https://www.evernote.com/client/web?login=true#?b=5ac9b6e0-84a0-4170-a6dc-a5efbf353acc&n=45e42d83-8b0a-cd53-9cd9-7d7d4bf35aa8& 4/5
Questão 4
Talvez seja necessário saber quais elementos fazem parte de uma lista em determinado momento de um 
sistema. Para tal, é necessário percorrer toda a lista ligada para verificá-los. A lista ligada pode ser impressa 
com todos os seus elementos e é possível utilizar o trecho de código a seguir:
 
void imprimir (Lista* l) {
Lista* p;
printf(“Elementos:\n”);
 
Por ser uma função que percorrerá toda a lista e de impressão em tela, é possível declará-la como VOID, 
uma função que não retornará valor para a função principal.
 
for (p = l; p != NULL; p = p -> prox) {
printf(“ %d -> “, p -> info);
}
}
 
Baseado no trecho de comando FOR, avalie as seguintes asserções e a relação proposta entre elas:
 
I. Neste trecho, uma condição de repetição FOR percorre a lista e envia todos os elementos encontrados 
nela para a memória.
PORQUE
II. Na função principal, declara-se apenas a chamada da função imprimir(), passando como parâmetro a 
lista na qual deseja-se imprimir.
A respeito dessas asserções, assinale a alternativa correta:
Questão 5
O
P
 
Fila "f": 
Início -> [D, B, C, A] <- Fim
As asserções I e II são proposições verdadeiras, e a II é uma justificativa da I.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições falsas.
18/01/2022 Primeiro Caderno - Evernote
https://www.evernote.com/client/web?login=true#?b=5ac9b6e0-84a0-4170-a6dc-a5efbf353acc&n=45e42d83-8b0a-cd53-9cd9-7d7d4bf35aa8& 5/5
Questão 5
Um dos problemas mais comuns para solucionar com pilhas são os labirintos. Estes são desafios criados 
como problematização de estrutura de dados. As pilhas podem ser aplicadas também no uso de algoritmos 
de Backtracking, que consiste em criar marcações para onde o algoritmo pode retornar. Em um labirinto, 
por exemplo, para encontrar um caminho correto, pode-se andar pelo labirinto até encontrar uma divisão 
nesse caminho. Assim, adiciona-se a posição onde a divisão ocorre, junto ao caminho escolhido na pilha, e 
segue-se por ele. Caso o caminho escolhido não possua uma saída, é removido o ponto anterior da pilha, 
voltando ao último ponto em que o labirinto se dividiu, e recomeça-se por um outro caminho ainda não 
escolhido, adicionando na pilha o novo caminho. O algoritmo de Backtracking pode ser aplicado também 
como operação de desfazer. Baseado no algoritmo de Backtracking, complete as lacunas da asserção a 
seguir:
 
Considerando o contexto apresentado, complete as lacunas a seguir:
Para implementar a operação de Backtracking, as ações são ____________ em ____________ e, caso a 
____________ seja realizada, o estado anterior do sistema pode ser ____________, ou a ação 
____________ pode ser executada.
Assinale a alternativa que completa corretamente as lacunas:
armazenadas / uma pilha / operação de refazer / restaurado / realizada.

Continue navegando