Buscar

Exercícios sobre pilhas_ Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PPL - Noite - 2022_2

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

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 6, do total de 11 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

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 9, do total de 11 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

30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 1/11
Exercícios sobre pilhas
Entrega 30 out em 23:59 Pontos 1,04 Perguntas 8
Disponível 24 out em 20:50 - 30 out em 23:59 Limite de tempo Nenhum
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 59 minutos 0,78 de 1,04
Pontuação deste teste: 0,78 de 1,04
Enviado 25 out em 9:30
Esta tentativa levou 59 minutos.
Prezados alunos,
 
Esses exercícios devem ser realizados individualmente e encerrados até o dia 30/10, às 23:59. Essa
atividade tem o valor de 1 ponto.
Eveline
0 / 0,13 ptsPergunta 1
Considere o tipo abstrato de dados Pilha e suas típicas operações
básicas: vazia(), empilhar(item) e desempilhar().
Considere também o tipo abstrato de dados Fila e suas operações
típicas: vazia(), enfileirar(item), desenfileirar().
Suponha que o TAD Pilha apresente também a operação
concatenar(p1, p2). Os parâmetros dessa operação correspondem às
https://pucminas.instructure.com/courses/118484/quizzes/330783/history?version=1
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 2/11
duas pilhas que serão concatenadas.
A execução dessa operação retornará uma pilha cujo topo será o topo
de p1. Além disso, o topo de p2 ficará imediatamente abaixo do item
que estava no fundo de p1.
 
Qual pseudocódigo abaixo corresponde à descrição da operação
concatenar() conforme indicado acima?
 
// variáveis
var aux: Pilha;
 
enquanto (!p1.vazia()) faça
 aux.empilhar(p1.desempilhar());
fim_enquanto
enquanto (!aux.vazia()) faça
 p2.empilhar(aux.desempilhar());
fim_enquanto
retorne(p2);
esposta corretaesposta correta
 
// variáveis
var nova: Pilha;
 
enquanto (!p1.vazia()) faça
 nova.empilhar(p1.desempilhar());
fim_enquanto
enquanto (!p2.vazia()) faça
 nova.empilhar(p2.desempilhar());
fim_enquanto
retorne(nova);
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 3/11
 
enquanto (!p1.vazia()) faça
 p2.empilhar(p1.desempilhar());
fim_enquanto
retorne(p2);
 
// variáveis
var nova: Pilha;
var f: Fila;
 
enquanto (!p1.vazia()) faça
 f.enfileirar(p1.desempilhar());
fim_enquanto
enquanto (!p2.vazia()) faça
 f.enfileirar(p2.desempilhar());
fim_enquanto
enquanto (!f.vazia()) faça
 nova.empilhar(f.desenfileirar);
fim_enquanto
retorne(nova);
ocê respondeuocê respondeu
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 4/11
 
// variáveis
var nova: Pilha;
var f: Fila;
 
enquanto (!p2.vazia()) faça
 f.enfileirar(p2.desempilhar());
fim_enquanto
enquanto (!p1.vazia()) faça
 f.enfileirar(p1.desempilhar());
fim_enquanto
enquanto (!f.vazia()) faça
 nova.empilhar(f.desenfileirar);
fim_enquanto
retorne(nova);
0,13 / 0,13 ptsPergunta 2
A maioria dos softwares de aplicação possui comandos de "Desfazer"
e "Refazer". O primeiro desfaz a última operação ou texto digitado,
enquanto que, o segundo refaz uma operação ou texto desfeito,
conforme sugerem os nomes dos comandos.
Internamente, nos softwares, podem ser usadas duas estruturas de
dados que armazenam as sucessivas operações de "Desfazer" e
"Refazer", de modo que o próximo "Refazer" sempre recupera o último
"Desfazer". Os tipos de estrutura de dados que podem ser usados
para "Desfazer" e "Refazer" são, respectivamente:
 Pilha e pilha Correto!Correto!
 Fila e pilha 
 Fila e fila 
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 5/11
 Pilha e fila 
0,13 / 0,13 ptsPergunta 3
Suponha as seguintes operações de empilhar e desempilhar
realizadas em uma pilha vazia: empilhar(10), empilhar(5), empilhar(7),
desempilhar(), empilhar(13), empilhar(4), desempilhar(), desempilhar(),
desempilhar(), empilhar(1), desempilhar(), desempilhar(). Assinale a
alternativa que contenha a sequência de números que foram
removidos da pilha pela operação de desempilhar na sequência que foi
executada.
 10 - 5 - 7 - 13 - 4 - 1 
 7 - 4 - 13 - 5 - 1 - 10 Correto!Correto!
 5 - 13 - 4 - 10 - 5 - 1 
 10 - 5 - 13 - 7 - 4 - 1 
 7 - 4 - 10 - 5 - 13 – 1 
0,13 / 0,13 ptsPergunta 4
O método abaixo deve ser implementado na classe Pilha, que
implementa o tipo abstrato de dados Pilha e suas típicas operações
básicas: pilhaVazia(), empilhar(item) e desempilhar().
 
Esse método deve ser capaz de fazer e retornar uma cópia exata da
pilha.
 // Método capaz de fazer e retornar uma cópia exata da pilha.
 public Pilha copiar() {
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 6/11
 Pilha pilhaCopia, pilhaAux;
 Celula aux;
 
 pilhaCopia = new Pilha();
 pilhaAux = new Pilha();
 
 if (!(pilhaVazia())) {
 I
 while (II) {
 pilhaAux.empilhar(new Item(aux.item.getId()));
 III
 }
 
 while (!pilhaAux.pilhaVazia()){
 IV
 }
 }
 V
 }
 
Analise as alternativas abaixo e indique a única que identifica
corretamente os comandos que devem preencher as lacunas,
numeradas de I a V.
 
I - aux = topo.proximo; II - aux != null III - aux = aux.proximo; IV -
pilhaCopia.empilhar(pilhaAux.desempilhar()); V - return (pilhaCopia);
 
I - aux = topo; II - aux != fundo III - aux++; IV - pilhaAux.desempilhar();
V - return (aux);
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 7/11
 
I - aux = topo.proximo; II - aux != fundo III – aux++; IV -
pilhaCopia.empilhar(pilhaAux.desempilhar()); V - return (pilhaCopia);
 
I - aux = topo; II - aux != fundo III - aux = aux.proximo; IV -
pilhaAux.empilhar(pilhaCopia.desempilhar()); V - return (pilhaAux);
 
I - aux = topo; II - aux != fundo III - aux = aux.proximo; IV -
pilhaCopia.empilhar(pilhaAux.desempilhar()); V - return (pilhaCopia);
Correto!Correto!
0 / 0,13 ptsPergunta 5
Considere o tipo abstrato de dados Pilha e suas típicas operações:
criarPilha(), vazia(), empilhar(item), desempilhar() e copiar().
 
Analise o pseudocódigo abaixo e assinale a alternativa correta:
 
função func(A[]: inteiro; n: inteiro): booleano
// variáveis
var i: inteiro
var pilhaEntrada: Pilha
var pilhaCopia: Pilha;
var pilhaInverso: Pilha;
 
início
 
 pilhaEntrada = criarPilha();
 pilhaInverso = criarPilha();
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 8/11
 
 para i <- 0 até (n - 1), com passo 1, faça
 pilhaEntrada.empilhar(A[i]);
 fim_para
 
 pilhaCopia = pilhaEntrada.copiar();
 
 enquanto (!pilhaCopia.vazia()) faça
 pilhaInverso.empilhar(pilhaCopia.desempilhar());
 fim_enquanto
 
 enquanto (!pilhaEntrada.vazia()) faça
 se (pilhaInverso.desempilhar() != pilhaEntrada.desempilhar())
então
 return falso;
 fim_se
 fim_enquantoreturn verdadeiro;
fim
 
A função “func” verifica se o vetor de entrada “A” é simétrico em
relação à posição do meio, ou seja, se ele apresenta a mesma
sequência de inteiros quer seja percorrido de frente para trás ou de trás
para frente.
esposta corretaesposta correta
 
O TAD Pilha não é o mais adequado para a resolução desse problema.
Deveria ter sido utilizado o TAD Fila para a resolução mais eficaz do
problema proposto.
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 9/11
 
A execução da função “func” sempre retornará verdadeiro, quaisquer
que sejam os parâmetros de entrada.
 
A execução de “func” pode acessar posições de memória não
alocadas anteriormente.
ocê respondeuocê respondeu
 
Se a variável “pilhaCopia”, do algoritmo descrito acima, fosse retirada,
juntamente com todo o pseudocódigo que a referencia; nenhuma
alteração seria observada na execução da função, pois pilhaCopia é
preenchida e, em seguida, esvaziada.
0,13 / 0,13 ptsPergunta 6
A pilha é uma estrutura de dados que permite a inserção e a remoção
de dados sempre por meio de regras pré-definidas. Para que essas
operações sejam realizadas, são utilizados dois
métodos: push() e pop().
Com base nessas informações, considere que um programa possua
uma pilha p, inicialmente vazia, e que as seguintes operações foram
realizadas, nesta ordem: p.push(10); p.push(5); p.push(3); p.push(50);
p.pop(); p.push(11); p.push(9); p.push(20); p.pop(); p.pop().
Ao fim da execução desses comandos, quais serão o topo da pilha e o
somatório dos elementos ainda dentro da pilha, respectivamente?
 9 e 38 
 3 e 29 
 50 e 68 
 20 e 58 
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 10/11
 11 e 29 Correto!Correto!
0,13 / 0,13 ptsPergunta 7
Considere que os números 10, 11, 12, 13 e 14 foram inseridos, nessa
ordem, em uma fila. Esses mesmos números foram inseridos na
mesma ordem em uma pilha. Nesse caso,
 o número 14 é o primeiro elemento a ser removido da fila. 
 o último elemento a ser removido da fila é o número 14. Correto!Correto!
 o primeiro elemento a ser removido da pilha é o número 10. 
 o topo da pilha é o número 10. 
0,13 / 0,13 ptsPergunta 8
Suponha uma estrutura de dados do tipo Pilha (“P”) e as operações
básicas desse tipo de estrutura de dados: empilhar(item) e
desempilhar().
Considere também uma estrutura de dados do tipo Fila (“F”) e as
operações básicas desse tipo de estrutura de dados: enfileirar(item) e
desenfileirar().
 
A pilha “P” e a fila “F” possuem originalmente n elementos cada (n >
5).
 
Seja o pseudocódigo abaixo:
 
para i = 1 até n, faça
30/10/22, 16:22 Exercícios sobre pilhas: Algoritmos e Estruturas de Dados II - Engenharia de Software - Unid. Educ. Praça da Liberdade - PP…
https://pucminas.instructure.com/courses/118484/quizzes/330783 11/11
 P.empilhar(P.desempilhar());
 F.enfileirar(F.desenfileirar());
fim-para
 
Ao final da execução do pseudocódigo acima, os estados finais de “P”
e “F” serão, respectivamente:
 elementos em ordem inversa e elementos em ordem inversa. 
 elementos em ordem inversa e elementos em ordem original. 
 elementos em ordem original e elementos em ordem original. Correto!Correto!
 elementos em ordem original e elementos em ordem inversa. 
Pontuação do teste: 0,78 de 1,04

Outros materiais