← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · FGV · 2022

Questão comentada de Algoritmos e Estrutura de Dados

Júlio está desenvolvendo uma aplicação e precisa implementar um mecanismo de desfazer/refazer de um editor de texto utilizando o algoritmo LIFO (Last In, First Out). Para implementar o algoritmo LIFO, Júlio deve usar a estrutura de dados:

Gabarito: B

Quando a questão fala em desfazer/refazer e cita LIFO, ela está falando da lógica de acesso ao último elemento inserido primeiro. Imagine uma pilha de pratos: você coloca por cima e tira de cima. É exatamente esse comportamento que um editor usa para registrar ações recentes e permitir desfazer na ordem inversa em que foram feitas. A estrutura de dados clássica para implementar LIFO é a pilha. Nela, as operações principais são push (inserir) e pop (remover), sempre no topo. Isso combina perfeitamente com o mecanismo de undo/redo, porque a última ação do usuário é a primeira a ser desfeita. Em prova, sempre que aparecer LIFO, pense em pilha antes de qualquer outra coisa. A fila segue a lógica FIFO, isto é, primeiro a entrar, primeiro a sair, então ela tem um comportamento diferente e não serve para esse caso. Árvores, nós folha e tabelas hash resolvem outros problemas, mas não representam a ideia de acesso pelo último elemento inserido. Em resumo: para LIFO, a estrutura adequada é a pilha, e por isso o gabarito é a letra B.

Continue treinando

Questões relacionadas