A estrutura de dados do tipo pilha tem como característica que a última informação a entrar é a primeira a sair (LIFO - last in first out). A aplicação da estrutura de pilhas é mais frequente em compiladores e sistemas operacionais, que a utilizam para controle de dados e alocação de variáveis na memória. O problema no uso de pilhas é controlar o final da pilha. Isto pode ser feito de várias formas, sendo a mais indicada criar um método para verificar se existem mais dados na pilha para serem retirados.
Antes de programar a solução de um problema que usa uma pilha, é necessário determinar como representar uma pilha usando as estruturas de dados existentes na linguagem de programação. Lembre-se de que uma pilha é um conjunto ordenado de itens, na linguagem C já contém um tipo de dado que representa um conjunto ordenado de itens, que é o vetor. Então, sempre que for necessário utilizar a estrutura de pilhas para resolver um problema, pode-se utilizar o vetor para armazenar esta pilha. Vale lembrar, porém, que a pilha é uma estrutura dinâmica e pode crescer infinitamente, enquanto um vetor na linguagem C tem um tamanho fixo; contudo, pode-se definir este vetor com um tamanho suficientemente grande para conter esta pilha.
Exemplo de Algoritmo de utilização de Pilha com tamanho definido
inteiro i;fim
real pilha[10], soma;
para(i←1; i<=10; i←i+1)
inicioescreva(“Digite o número”, i,”:”);fim
empilha(pilha[i]);
soma = 0;
para(i←1; i<=10; i←i+1)
escreva (pilha[i])soma = soma + pilha[i];escreva(“Soma = “, soma);