Pilha Encadeada
Publicado por Ricardo Rodrigues Lucca 02/07/2003
[ Hits: 23.418 ]
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;
}
Desenhando uma superfície Bézier
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Ativando e usando "zoom" no ambiente Cinnamon
Vídeo Nostálgico de Instalação do Conectiva Linux 9
Como realizar um ataque de força bruta para desobrir senhas?
Aderencia a Obsolencia Programada. (2)
Não consigo criar pasta em um HD secundário. [RESOLVIDO] (0)
Jogos baixados na Central de Aplicativos mas que não abrem (2)









