Pilha é uma estrutura de dados que representa um elemento sobre o outro. Imagine uma pilha de papéis ou uma pilha de moedas, repare que quando pensamos em uma pilha de alguma coisa, pensamos em um elemento sobre o outro. Caso deseje retirar um elemento do meio desta pilha você terá uma certa dificuldade, assim, precisará tirar todos os elementos de cima, de um a um, até que o objeto que você deseja retirar seja o último da pilha. Aí está a primeira característica desta estrutura de dados, o primeiro elemento a entrar, será o último a sair (LIFO - Last-in-First-out). Perceba bem que nesse tipo de estrutura nós teremos acesso ao último elemento da pilha (ou elemento do topo).
Para inserir um dado nesse tipo de estrutura nós iremos empilhar, ou seja, colocar um elemento no topo da pilha. Para excluir, nós iremos excluir o dado que estará no topo da pilha. Podemos também pesquisar somente o topo da pilha. Só é possível pesquisar, inserir e excluir o item do topo da pilha, isso não pode ocorrer no meio dela.
Para contextualizar com javascript, imagine um array que iremos inserir dados, assim, o método push(elemento a ser inserido) passa a ideia de inserção em uma pilha, ele sempre irá inserir no topo/final do vetor. Já o método pop( ), funcionará como a exclusão de elementos de uma pilha, pois ele irá tirar o último elemento do array. Por fim, se quisermos pesquisar o último elemento, nós temos algumas formas, dentre elas temos o at(-1).
Fiz um exemplo em que eu insiro em JS que insiro vários elementos e depois retiro o último e por fim eu imprimo o elemento do topo.
Por fim, segue um exemplo de um algoritmo que fiz em python que utiliza também a ideia de pilha:
Caso tenha alguma sugestão sobre o tema, mande mensagem. Será muito bom evoluir com sua ajuda! Obrigado por chegar até aqui e espero ter ajudado!
Big-O
Vetores não ordenados
Um resumo sobre: vetores ordenados e pesquisa linear e binária.
Top comments (0)