Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 8.917 ]
Mais uma implementacao de pilha em C.
<pre> <font color="#0000ff">/*</font><font color="#0000ff"> Pilha</font> <font color="#0000ff"> * Preparacao para a OBI 2004</font> <font color="#0000ff"> * Jose Maria Silveira Neto </font> <font color="#0000ff"> * </font><font color="#0000ff">*/</font> <font color="#a520f7">#include</font><font color="#ff00ff"><stdio.h></font> <font color="#a520f7">#define max </font><font color="#ff00ff">50</font> <font color="#a520f7">#define nulo </font><font color="#ff00ff">0</font> <font color="#298a52"><b>int</b></font> pilha[max]; <font color="#0000ff">// Limpa a pilha. Coloca em toda posicao da pilha o valor nulo</font> <font color="#298a52"><b>void</b></font> limpa_pilha(){<font color="#298a52"><b>int</b></font> i; <font color="#a52829"><b>for</b></font>(i=<font color="#ff00ff">0</font>;i<max;i++) pilha[i]=nulo;} <font color="#0000ff">// Coloca A no topo da pilha. O topo eh o primeiro nulo partindo do comeco.</font> <font color="#298a52"><b>void</b></font> empilha(<font color="#298a52"><b>int</b></font> a){ <font color="#298a52"><b>int</b></font> topo=<font color="#ff00ff">0</font>; <font color="#a52829"><b>while</b></font> (pilha[topo]!=nulo){topo++;} pilha[topo]=a; } <font color="#0000ff">// Imprime a pilha para a saida. Imprime todo valor ate que nulo.</font> <font color="#298a52"><b>void</b></font> mostra_pilha(){ <font color="#298a52"><b>int</b></font> topo=<font color="#ff00ff">0</font>; <font color="#a52829"><b>while</b></font> (pilha[topo]!=nulo){ printf(<font color="#ff00ff">"</font><font color="#6b59ce">%d</font><font color="#ff00ff"> "</font>,pilha[topo]); topo++;} printf(<font color="#ff00ff">"</font><font color="#6b59ce">\n</font><font color="#ff00ff">"</font>); } <font color="#0000ff">// Retira o valor do topo da pilha. O topo eh o primeiro nulo partindo do comeco</font> <font color="#298a52"><b>void</b></font> desempilha(){ <font color="#298a52"><b>int</b></font> topo=<font color="#ff00ff">0</font>; <font color="#a52829"><b>while</b></font>(pilha[topo]!=nulo){ topo++;} <font color="#a52829"><b>if</b></font> (topo><font color="#ff00ff">0</font>) pilha[topo-<font color="#ff00ff">1</font>]=nulo; } <font color="#0000ff">// Um exemplo de utilizacao destas funcoes</font> <font color="#298a52"><b>int</b></font> main(){ <font color="#298a52"><b>int</b></font> novo=<font color="#ff00ff">1</font>; limpa_pilha(); empilha(<font color="#ff00ff">3</font>); mostra_pilha(); empilha(<font color="#ff00ff">1</font>); mostra_pilha(); empilha(<font color="#ff00ff">4</font>); mostra_pilha(); empilha(<font color="#ff00ff">5</font>); mostra_pilha(); desempilha(); mostra_pilha(); empilha(<font color="#ff00ff">1</font>); mostra_pilha(); } <font color="#0000ff">// Editado no GVim</font> </pre>
Loop de Várias Váriáveis Em Um Único Laço "For" em C
Lista duplamente encadeada com cabecalho
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta