Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 9.082 ]
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>
Controle de maior idade em C++
Desenhando uma curva Dragão ou o Fractal Jurassic Park
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (3)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)