Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 9.303 ]
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>
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









