Devolutiva da Prova Tipo 5
Devolutiva da Prova Tipo 5
Devolutiva da Prova Tipo 5
NOTA FINAL
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Aluno:
Componente Curricular: Estrutura de Dados
ED-TA-N1-2Sem-2024
1ª QUESTÃO
Enunciado:
Suponha que você está implementando um sistema que gerencia uma pilha com informações
sobre coordenadas de latitude (do tipo float) adquiridas em um mapeamento geográfico.
Considere que a implementação adotada da pilha é estática e contígua e o seguinte trecho de
código do arquivo de cabeçalho (.h):
class Stack{
public:
Stack();
private:
int top;
float Entry[MaxStack+1];
};
Escreva os códigos de implementação em C++ (referentes ao arquivo .cpp da classe Stack) dos
métodos:
Obs.: Se desejar, fique à vontade para implementar outros métodos de suporte. Lembre-se
das boas práticas de programação. Faça as suposições que julgar necessárias.
Alternativas:
--
Pgina 1 de 8
Resposta comentada:
a) Stack::Stack()
{
top = 0;
}
b) void Stack::Push(float x)
{ if (Full())
{ cout << “Pilha Cheia”;
abort();
}
top++;
Entry[top] = x;
}
2ª QUESTÃO
Enunciado:
Durante a prática profissional, você foi convidado a desenvolver um módulo de um projeto que
usará a estrutura de dados Fila. Com base nas características da estrutura, avalie as asserções
a seguir e a relação proposta entre elas.
I. Filas são listas lineares com disciplina de acesso FILO (first in, last out).
PORQUE
Pgina 2 de 8
Alternativas:
(alternativa A)
As asserções I e II são falsas.
(alternativa B)
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
(alternativa C)
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
(alternativa D)
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
(alternativa E) (CORRETA)
A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
Resposta comentada:
Filas são listas lineares com disciplina de acesso FIFO (first in, first out).
3ª QUESTÃO
Enunciado:
Suponha que você está implementando uma aplicação que gerencia uma lista linear de valores
numéricos inteiros. Considere que a implementação adotada da lista linear é dinâmica e o
seguinte trecho de código do arquivo de cabeçalho (.h):
Pgina 3 de 8
class List{
public:
private:
struct ListNode
{ int Entry;
ListNode *NextNode;
};
ListPointer head;
int count;
};
Alternativas:
--
Pgina 4 de 8
Resposta comentada:
4ª QUESTÃO
Enunciado:
Durante a prática profissional, você foi convidado a desenvolver um módulo de um projeto que
usará a estrutura de dados Pilha. Com base nas características da estrutura, avalie as asserções
a seguir e a relação proposta entre elas.
I. Pilhas são listas lineares com disciplina de acesso FIFO (first in, first out).
PORQUE
II. A pilha armazena apenas a posição de uma de suas extremidades (chamada topo), que é o
único local onde são realizadas todas as operações de entrada e saída.
Pgina 5 de 8
Alternativas:
(alternativa A)
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
(alternativa B)
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
(alternativa C) (CORRETA)
A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
(alternativa D)
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
(alternativa E)
As asserções I e II são falsas.
Resposta comentada:
Pilhas são listas lineares com disciplina de acesso LIFO (last in, first out).
5ª QUESTÃO
Pgina 6 de 8
Enunciado:
Duas pilhas de implementação estática que não necessitam de toda sua capacidade
simultaneamente podem ser representadas economicamente em um único vetor compartilhado.
As pilhas são posicionadas nas extremidades do vetor e crescem em direção ao centro.
Supondo-se um vetor com posições indexadas de 0 até MAX-1, o topo da primeira pilha é
inicializado com -1 e o topo da segunda é inicializado com MAX, correspondendo as situações de
pilha vazia de cada estrutura. As duas pilhas estão simultaneamente cheias quando não há mais
posições livres entre elas, ou seja, quando (topo2 - topo1 == 1).
int Entry[MAX]; }
};
Alternativas:
(alternativa A)
topo1 + topo2
(alternativa B)
2*MAX + 1
(alternativa C)
topo1 + MAX + topo2 + 1
(alternativa D)
topo1 + MAX
(alternativa E) (CORRETA)
topo1 + 1 + MAX - topo2
Pgina 7 de 8
Resposta comentada:
A instrução topo1 + 1 + MAX - topo2 reflete corretamente a quantidade de elementos pois utiliza-
se dos limites definidos do vetor para realizar o cálculo da quantidade de elementos totais.
6ª QUESTÃO
Enunciado:
Diferenciar e aplicar as estruturas de dados corretamente aos desafios do dia a dia é tarefa
corriqueira do profissional da área de ciência da computação. A escolha correta entre os diversos
algoritmos e como são implementados, contribui para a qualidade do produto final.
I. O nó sentinela, criado ao final de uma lista, é usado para armazenar a chave de busca e assim
acelerar o respectivo algoritmo, uma vez que reduz o número de comparações necessárias.
II. A única diferença significativa entre as implementações estática e dinâmica de listas ligadas
está no fato de que a implementação estática “simula” uma lista ligada em vetor, e nos obriga a
gerenciar as posições livres e ocupadas. Isso deixa de ser necessário no caso da alocação
dinâmica “real”.
III. Em uma lista ligada de implementação dinâmica, não há mais uso de vetores. Cada elemento
da lista é uma estrutura do tipo Node, que contém os dados de cada elemento (Entry) e um
ponteiro NextNode para o próximo nó da lista.
Alternativas:
(alternativa A) (CORRETA)
I, II e III.
(alternativa B)
I, apenas.
(alternativa C)
I e II, apenas.
(alternativa D)
III, apenas.
(alternativa E)
II e III, apenas.
Resposta comentada:
Todas as afirmações estão corretas.
Pgina 8 de 8