Pilha
Publicado por Jose Maria Silveira Neto 28/03/2004
[ Hits: 8.804 ]
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>
Desenhando uma superfície Bézier
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
pacotes 32 bit no void 64 bit (1)
erro ao clonar repo github (7)
ASRock H310CM-HG4 vs Linux (1)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (26)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba