Problema 1: Fundamentos da Stack
Tarefa 1: Reverter usando stack
Oh não! Um novo estagiário foi contratado e bagunçou a lista de restaurantes! Os pedidos dos restaurantes estão em ordem inversa! Felizmente, a stack (pilha) é a estrutura de dados perfeita para isso. Você pode criar uma nova stack na ordem correta?
- Lembre-se de que a stack é Último a entrar, primeiro a sair (LIFO; pense em uma pilha de pratos).
- Como é a stack original?
// Exemplo da atual stack
Stack<String> restaurants = new Stack<>();
restaurants.push("McDonalds");
restaurants.push("Carls Jr.");
restaurants.push("Burger King");
restaurants.push("Chipotle");
Tarefa 2: Manter o histórico
Outro uso prático da stack é a função de desfazer. Muitos programas hoje em dia incluem um botão de desfazer para acompanhar as alterações mais recentes. A stack é a estrutura de dados perfeita para isso! Você pode criar uma função para desfazer a alteração recente? Por exemplo:
// Exemplo da atual stack
Stack<String> myOrder = new Stack<>();
restaurants.push("Bebida");
restaurants.push("Batata Frita");
restaurants.push("Pizza");
restaurants.push("Pizza");
// O usuário pediu uma pizza extra! Como você pode desfazer a mudança recente?
Stack.undo() // Remover o push mais recente