Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 9.264 ]
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>
Algoritmo estatístico para cálculo de PI em C
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









