Pilha Encadeada
Publicado por Ricardo Rodrigues Lucca 02/07/2003
[ Hits: 23.479 ]
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;
}
Lista simplesmente encadeada com busca auto-organizada
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









