Em um sistema de gerenciamento de biblioteca, é necessário modelar as informações dos livros, autores e empréstimos utilizando tipos de dados estruturados. A seguir, são apresentadas definições de estruturas de dados abstratas e concretas que poderiam ser empregadas na implementação desse sistema. Considerando as descrições fornecidas, analise os itens a seguir. I. “Para representar um livro com atributos como título, autor e ISBN, utiliza-se ___________, que agrupa esses diferentes tipos de dados sob um único tipo composto.” II. “Para armazenar uma coleção ordenada de livros onde cada livro pode ser acessado por um índice numérico, utiliza-se ___________.” III. “Para associar cada ISBN único a um registro de livro correspondente, permitindo buscas rápidas, utiliza-se ___________.” IV. “Para manter a lista de empréstimos onde novos empréstimos são adicionados e removidos frequentemente, utiliza-se ___________, que permite inserções e remoções eficientes em qualquer posição.” V. “Para armazenar os nomes dos autores de forma que não haja duplicatas e que permita operações eficientes de verificação de existência, utiliza-se ___________.” Assinale a alternativa que completa correta e sequencialmente as afirmações anteriores.
- A)I. classe II. array III. mapa IV. pilha V. dicionário
Errada, porque mistura conceitos inadequados: classe e dicionário não são as respostas mais precisas para o contexto pedido, e pilha não é estrutura adequada para inserções e remoções em qualquer posição.
- B)I. estrutura II. matriz III. árvore binária IV. fila V. lista
Errada, pois matriz não representa uma coleção linear de livros, árvore binária não é a melhor forma de mapear ISBNs, e fila não permite remoções e inserções eficientes em qualquer posição.
- C)I. tupla II. lista III. tabela de dispersão IV. deque V. pilha
Errada, porque tupla não é a melhor opção para representar um livro com campos mutáveis, deque não é a estrutura esperada para o controle de empréstimos, e pilha não elimina duplicatas de autores.
- D)I. registro II. vetor III. tabela hash IV. lista ligada V. conjunto
Certa, pois registro agrupa campos de tipos diferentes, vetor permite acesso por índice, tabela hash associa ISBN a livro com rapidez, lista ligada facilita alterações frequentes e conjunto evita duplicatas.
Gabarito: D
A questão mistura conceitos básicos de estruturas de dados com nomes que podem variar conforme a linguagem, mas a lógica é sempre a mesma. Quando você quer reunir atributos diferentes em um único objeto, como título, autor e ISBN, você usa um registro, também chamado de struct em muitas linguagens. Isso é um tipo composto que “empacota” campos diferentes sob uma mesma entidade. Para guardar livros em ordem e acessar cada um por posição, a solução clássica é o vetor, que é o nome mais comum para array em português. Ele organiza os elementos de forma indexada, permitindo acesso rápido por índice numérico. Quando a ideia é relacionar uma chave única, como o ISBN, com seu respectivo valor, entra a tabela hash. Ela é muito usada porque facilita buscas, inserções e remoções em tempo médio eficiente, justamente por transformar a chave em endereço ou posição por meio de uma função hash. Já para uma lista de empréstimos com muitas inserções e remoções, a lista ligada costuma ser a escolha correta, porque altera a estrutura sem precisar deslocar vários elementos como ocorreria num vetor. E, para armazenar autores sem duplicatas e verificar existência rapidamente, o conjunto resolve bem, pois sua proposta é justamente manter elementos únicos. Por isso, o gabarito D está correto: registro, vetor, tabela hash, lista ligada e conjunto.