Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 9.042 ]
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>
Converter Decimal para Binário em C
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Atualizador de Programas do Zorin 17.3 não funciona [RESOLVIDO] (5)
Linphonec não executa após clonagem de HD (2)