quinta-feira, 23 de maio de 2013

[Programação em C] Implementando uma pilha

Olá pessoal, nesse post iremos ver a implementação de uma estrutura de dados chamada pilha. A pilha (stack) terá as operações de inserir (push) e retirar (pop) elemento.

No código também foi implementada uma função para mostrar todos os elementos da pilha. Eu utilizei aritmética de ponteiros para me auxiliar na implementação da pilha.

A pilha é uma estrutura de dados que possui a característica chamada LIFO (last in, first out), ou seja, o primeiro elemento a ser inserido será o último a ser removido.

A operação de inserção de elemento na pilha é conhecida como push e a operação de remoção de elemento é conhecida como pop.

Se você ainda não entendeu muito bem como funciona uma pilha, clique no link abaixo para ver exemplo com animação:


Código atualizado em 08/01/2015. Motivo: o código liberava ponteiros sem que eles tivessem sido alocados, ou seja, utilizava a função "free" sem utilizar "malloc".

Quaisquer dúvidas deixem nos comentários, até a próxima!


2 comentários:

Antonio Sergio disse...

parabens pelo artigo.
Gostaria de saber se esta estrutura tambem se aplica para vetores?

admin disse...

Não amigo. A pilha tem uma propriedade diferente dos vetores. No vetor você pode acessar um elemento em qualquer posição, já na Pilha você não pode fazer isso, por causa da propriedade FILO (first in, last out), ou seja, o primeiro elemento que entra é o último que sai. Numa pilha você só acessa elemento do topo.