Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 9.342 ]
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>
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
NixOS + NVIDIA antiga: como sobreviver ao driver 595 (GTX 750 Ti / Maxwell)
Conhecendo o tmux: Multiplexador de Terminal
Acessando página do Syncthing fora da máquina local
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
Qual melhor distro para esse notebook? (1)
Ativação de som 5.1 e nvidia (0)
Entrevista com Greg Kroah-Hartman (2)









