InstruçÔes
implementar uma pilha
Neste laboratĂłrio, vocĂȘ vai implementar uma estrutura de dados pilha usando funçÔes. Uma pilha Ă© uma estrutura de dados Last-In-First-Out (LIFO), onde os elementos sĂŁo adicionados e removidos do topo.
Objetivo: Atenda às user stories abaixo e faça todos os testes passarem para concluir o laboratório.
User stories:
1. VocĂȘ deve ter uma função
initStack que retorna um objeto com uma propriedade collection definida como um array vazio.
1. VocĂȘ deve ter uma função push que adiciona um elemento ao topo da pilha.
1. VocĂȘ deve ter uma função pop que remove e retorna o elemento do topo da pilha, ou undefined se nĂŁo houver nenhum.
1. VocĂȘ deve ter uma função peek que retorna o elemento do topo da pilha sem removĂȘ-lo, ou undefined se nĂŁo houver nenhum.
1. VocĂȘ deve ter uma função isEmpty que retorna true se a pilha nĂŁo contiver elementos, e false caso contrĂĄrio.
1. VocĂȘ deve ter uma função clear que remove todos os elementos da pilha.
Nota: A maioria dos testes depende das funçÔes initStack e push. Implemente-as primeiro, pois os testes para pop, peek, isEmpty e clear exigem adicionar elementos à pilha.
O que fazer:
Testes:
- VocĂȘ deve ter uma função `push`.
- A função `push` deve adicionar um elemento ao topo da pilha.
- VocĂȘ deve ter uma função `pop`.
- A função `pop` deve remover e retornar o elemento do topo da pilha.
- A função `pop` deve retornar `undefined` se a pilha estiver vazia.
- A função `pop` deve retornar valores falsy corretamente.
- VocĂȘ deve ter uma função `peek`.
- A função `peek` deve retornar o elemento do topo da pilha sem removĂȘ-lo.
- A função `peek` deve retornar `undefined` se a pilha estiver vazia.
- A função `peek` deve retornar valores falsy corretamente.
- VocĂȘ deve ter uma função `isEmpty`.
- A função `isEmpty` deve retornar `true` para uma pilha vazia.
- A função `isEmpty` deve retornar `false` para uma pilha não vazia.
- A função `isEmpty` deve retornar `false` quando o elemento do topo for falsy.
- VocĂȘ deve ter uma função `clear`.
- A função `clear` deve remover todos os elementos da pilha.
Preview