Pages

segunda-feira, 18 de janeiro de 2021

Exemplo de Pilha Alocado Dinamicamente em C

Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP

E-mail: ajudastrabalhosprogramacao@gmail.com

Whats: (15) 99704-0447


Exemplo básico de uso de uma Pilha alocado dinamicamente em C.



#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*
FILO = ( o primeiro que entra é o ultimo que sai).
First 
in 
Last
Out
*/

struct PILHA{
int item;
struct PILHA *prox;
};

void  imprimirPilha(struct PILHA *pi);
struct PILHA *remover (struct PILHA *pi);

void imprimirPilha(struct PILHA *pi)
{
if(pi != NULL)
{
printf("%d ", pi->item);
imprimirPilha(pi->prox);
}
}

struct PILHA *remover(struct PILHA *pi)
{
struct PILHA *pTemp = pi;
pi = pi->prox;
printf("\n\n\tElemento Removido: %d", pTemp->item);
free(pTemp);

return pi;
}

int main()
{
struct PILHA *p = NULL;
int opc;

do
{
system("cls");
printf("1 - Inserir numero\n"
"2- Exibir numeros\n"
"3-Remover\n"
"0-Sair");
scanf("%d", &opc);
getchar();

switch(opc)
{
case 1:
{
struct PILHA *pTemp = malloc(sizeof(struct PILHA));

printf("Inserir um valor: ");
scanf("%d", &pTemp->item);

pTemp->prox = NULL;

if(p == NULL)
{
p = pTemp;
}else{

pTemp->prox = p;
p = pTemp;
}
}break;
case 2:
{
if(p == NULL)
{
printf("\n\n\tNao ha numeros cadastrados!");

}else{
system("cls");

imprimirPilha(p);
}
}break;
case 3:
{
if(p == NULL)
{
printf("\n\n\tNao ha numeros cadastrados!");
}else{
system("cls");

p = remover(p);
}

}break;
case 0: break;
default:
printf("\n\n\tOpcao Incorreta !!");
break;
}
getchar();
}while(opc != 0);

return 0;
}

Atenção: Precisando de ajuda entre em contato com a SGP e solicite uma assessoria com melhor equipe do mercado no desenvolvimento de trabalhos acadêmicos

E-mail: ajudastrabalhosprogramacao@gmail.com

Facebook: fb.me/ajudaemTrabalhosdeprogramacao


0 comentários:

Postar um comentário

 
Copyright © 2023 2m Assessoria Academica todos os direitos reservados.
Contato para trabalhos: assessoria.academica2m@gmail.com - WhatsApp: (15) 98115 - 0680