Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Um banco adotou dois sistemas de senhas para atender os cidadãos na ordem de chegada. O sistema I atende todas pessoas que não possuem atendimento prioritário. O sistema II atende somente pessoas com atendimento prioritário. Nessa situação, O sistema I adota o esquema FIFO de organização de dados e o II, o esquema LIFO. Tanto o sistema I, quanto o II, adota o esquema lista duplamente encadeada de organização de dados. Tanto o sistema I, quanto o II, adota o esquema LIFO de organização de dados. Tanto o sistema I, quanto o II, adota o esquema FIFO de organização de dados. O sistema I adota o esquema LIFO de organização de dados e o II o esquema FIFO. 2. Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção podemos afirmar que: Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como esgotamento de memória. A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o algoritmo LIFO. A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da fila circular. A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto não afetará a estrutura. Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais. Gabarito Comentado 3. Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; Fila F; F. inicio = 0; F.fim = -1; void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else F.fim++; F.v[F.fim] = codigo; } void enfileirar(Fila F, int codigo) { F.fim++; F.v[F.fim] = codigo; } void enfileirar(Fila &F, int codigo) { F.v[F.fim] = codigo; F.fim++; } void enfileirar(Fila F, int codigo) { if (F.fim == 100) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } void enfileirar(Fila &F, int codigo) { if (F.fim == 99) cout << "Não há espaço na firma para mais agentes. " << endl; else { F.fim++; F.v[F.fim] = codigo; } } Gabarito Comentado 4. As estruturas de dados podem ser do tipo estática e dinâmica. As listas são estruturas parecidas com vetores podendo ser do tipo dinâmica. Entretanto, existem várias implementações de estruturas do tipo listas. Dessa forma, a estrutura que para o acesso de um dado, este precisa estar na saída, caso contrário, precisa remover os elementos a sua frente, é chamada de: Matriz Bolha Pilha Struct Fila Gabarito Comentado 5. Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de estrutura de dados utilizado. Fila Struct Hash Pilha Matriz Gabarito Comentado 6. Um aluno do EAD estava estudando para a prova de Estrutura quando viu o trecho do programa abaixo em uma apostila. Como não estava com seu micro, começou a analisar a função entra(...), ficando atento a alguns membros da struct. Quando finalizou, virou a página da apostila e viu a resposta. Então, ficou muito feliz por ter identificado a estrutura Assinale a alternativa onde está presente a resposta correta. Lista simplesmente encadeada Fila Pilha Lista Linear Fila Circular Gabarito Comentado 7. Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção podemos afirmar que: Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como esgotamento de memória. A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da fila circular. A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto não afetará a estrutura. A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o algoritmo LIFO. Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais. 8. Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo. struct Fila { in t v[100], inicio, fim; } ; Fila F; F. inicio = 0; F.fim = -1; void desenfileirar(Fila F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } } void desenfileirar(Fila &F) { if (F.inicio > F.fim) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; } } void desenfileirar(Fila F) { cout << "Removido o agente " << F.v[F.inicio]; F.inicio--; } void desenfileirar(Fila &F) { if (F.fim == -1 && F.inicio == 0) cout << "Não há agentes para retirar. " << endl; else { cout << "Removido o agente " << F.v[F.inicio]; F.inicio++; } }
Compartilhar