estrutura de dados
Explicando PILHAS
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).
http://en.wikipedia. org/wiki/File:Data_stack.svg Empilhar pilha[t++]=y(push.
Desempilhar x = pilha[--t](pop.
Uma pilha pode ser implementado para ter uma capacidade limitada. Se a pilha está cheia e não contém espaço suficiente para aceitar uma entidade a ser empurrado, a pilha é então considerada em um estouro de Estado.
APLICAÇÕES:
Verificação de parênteses.
Retirada de vagão de um trem.
Retirada de mercadorias em um caminhão de entregas. Criar uma estrutura de pilha.
Pilha*cria (void)
{Pilha *p;
P = (Pilha*) malloc(sizeof(Pilha)); p->topo =NULL; return p;
}
Inserir o elemento do topo- push()
Pilha* push(Pilha *p, float v )
{
No* aux; aux= (No*) malloc(sizeof(No)); aux->info = v: aux->anterior =p->topo; p->topo =aux;
}
Remover o elemento do topo - pop()
Float pop (Pilha*p)
{
Float v;
No* aux;
IF (vazio(p))
}
Printf(“Pilha vazia.”);
Exit(1); /*aborta o programa*/
{
v =p->topo->info; aux =p->topo; p-> topo = aux->anterior; free(aux); return v;
}
Verificar se a Pilha esta vazia
Int vazia(Pilha*p)
{
returne(p->topo== NULL);
}
LIBERAR A ESTRUTURA DE PILHA
Void libera(Pilha *p)
{
No*q=p->topo; While (q!= NULL) {
No*t=q-> anterior; free(q); q=t; } free(p);
}