analise
Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de novos elementos. Mais especificamente, uma pilha (= stack) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há menos tempo.
Em outras palavras, o primeiro objeto a ser inserido na pilha é o último a ser removido. Essa política é conhecida pela sigla LIFO (= Last-In-First-Out). O índice t indica o topo (= top) da pilha. Esta é a primeira posição vaga da pilha. A pilha está vazia se t vale 0 e cheia se t vale n.
Para remover um elemento da pilha — esta operação é conhecida como desempilhar (= to pop) — faça
x = pilha[--t];
Isso equivale ao par de instruções "t -= 1; x = pilha[t];" nesta ordem. É claro que você só deve desempilhar se tiver certeza de que a pilha não está vazia. Para consultar a pilha sem desempilhar faça x = pilha[t-1].
Para inserir — ou seja, para empilhar (= to push) — um objeto y na pilha faça
pilha[t++] = y;
Isso equivale ao par de instruções "pilha[t] = y; t += 1;" nesta ordem. Antes de empilhar, verifique se a pilha já está cheia para evitar que ela transborde (ou seja, para evitar um overflow). Em geral, a tentativa de inserir em uma pilha cheia é uma situação excepcional, que indica um mau planejamento lógico do seu