Pilha Encadeada
Publicado por Ricardo Rodrigues Lucca 02/07/2003
[ Hits: 23.464 ]
Homepage: http://aventurasdeumdevop.blogspot.com.br/
Um exemplo de pilha encadeada.
// Programador: Ricardo Lucca
#include "tela.h" //Declarado para se ter clrscr() e a stdio.h
#include <stdlib.h> //uso para malloc
#define dgetchar() getchar();getchar();
struct nodo
{
int elem;
struct nodo *prox;
} *topo, *aux;
bool vazio(struct nodo *campo)
{
if ( campo == NULL )
return true;
else
return false;
}
void insere(void)
{
int x;
printf("\nEntre com o numero a inserir: ");
scanf(" %i", &x);
aux=(struct nodo *) malloc(sizeof(aux));
aux->elem=x;
aux->prox=topo;
topo=aux;
printf("\nElemento inserido!");
dgetchar();
}
void removr(void)
{
if (vazio(topo))
{
aux=topo;
topo=topo->prox;
free(aux);
printf("\nRemovido com sucesso!");
dgetchar();
}
}
void listar(void)//faz uma busca como c fosse um vetor
{
if (!vazio(topo)) ;
else
{
aux=topo;
for (;(topo->prox)!=NULL;topo=topo->prox)
printf("%i\n",topo->elem);
printf("%i",topo->elem);
printf("\nTecle algo...");
dgetchar();
topo=aux;
}
}
int main(void)
{
char op;
int sair=0;
topo=NULL;
for (;sair==0;)
{
clrscr();
printf("1 -> Insere na pilha\n2 -> Remove da pilha\n");
printf("3 -> Listar pilha\n4 -> Sair da pilha\n");
printf("\nDigite uma opção: ");
scanf(" %c", &op);
switch (op)
{
case '1': insere(); break;
case '2': removr(); break;
case '3': listar(); break;
case '4': sair=1; break;
default: {
printf("Opção invalida! \n");
getchar(); getchar();
break;
}
}
}
return 0;
}
Jogando dados e somando os valores
Converter Decimal para Binário em C
Passando uma matriz para funcao
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (16)
Instalar Dual Boot, Linux+Windows. (11)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (3)









