informatica
Uma pilha é uma lista com restrições de acesso, onde todas as operações só podem ser aplicadas sobre uma das extremidades da Lista, denominada topo da pilha.
Com isso estabelece-se o critério LIFO (last in, first out), que indica que o último item que entra é o primeiro a sair.
O modelo intuitivo para isto é o de uma pilha de pratos, ou livros,etc... na qual só se pode visualizar (consultar) o último empilhado e este é o único que pode ser retirado. E também qualquer novo empilhamento (inserção) se fará sobre o último da pilha.
Outro importante conceito de estrutura de dados dinâmica são as filas, que são exatamente iguais a do mundo real.
Como funciona a fila de um caixa eletrônico?
Chega a primeira pessoa, é atendida. Já a segunda, fica na fila, e será atendida depois da primeira.
A terceira a chegar só vai ser atendida depois da segunda, e assim sucessivamente.
Ou seja, os primeiros elementos a chegar serão os primeiros a serem atendidos.
Um termo muito conhecido para designar tal tipo de ideia é FIFO - First In, First Out (Primeiro que entra, primeiro que sai).
Em termos de programação, dizemos que os elementos que chegam vão para a cauda da fila, ou seja, para o final, serão atendidos por último. Os elementos que serão primeiro atendidos são os que estão na cabeça da fila (na frente).
Pilhas em C (Stack)
Outra importante estrutura dinâmica de dados são as pilhas (stacks, em inglês), que tem um funcionamento contrário ao das filas. São ditas do tipo LIFO - Last In, First Out (Último a entrar, primeiro a sair).
Para entender esse tipo de estrutura, podemos imaginar uma pilha de pratos.
Você come uma coisa, e guarda o prato.
Come a segunda coisa, e põe o segundo prato em cima do primeiro.
Come a terceira e põe este prato em cima do segundo, e assim sucessivamente.
Quando você for lavar, que prato vai retirar primeiro? O de cima.
E qual o último prato a ser retirado? O primeiro.
Ou seja, você vai tirando os