Advertisement
renix1

Implementação de uma pilha

Mar 31st, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5.  
  6. typedef struct pilhaStruct {
  7.     int dado;
  8.     struct pilhaStruct *prox;
  9. } pilha;
  10.  
  11. void inserirPilha(pilha **topo, int numero) {
  12.     pilha *novoElemento;
  13.     novoElemento = malloc(sizeof(pilha));
  14.     novoElemento->dado = numero;
  15.     if (*topo == NULL) {
  16.         novoElemento->prox = NULL;
  17.     } else {
  18.         novoElemento->prox = *topo;
  19.         *topo = novoElemento;
  20.     }
  21.     *topo = novoElemento;
  22. }
  23.  
  24. void removerPilha(pilha **topo) {
  25.     pilha *elementoRemover;
  26.     if (*topo != NULL) {
  27.         elementoRemover = *topo;
  28.         *topo = (*topo)->prox;
  29.         free(elementoRemover);
  30.     }
  31. }
  32.  
  33. void printarPilha(pilha **topo) {
  34.     pilha *elTemp;
  35.     elTemp = *topo;
  36.     while (elTemp != NULL)
  37.     {
  38.         printf("%d ", elTemp->dado);
  39.         elTemp = elTemp->prox;
  40.     }
  41.     printf("\n");
  42. }
  43.  
  44. int main () {
  45.     setlocale(LC_ALL, "");
  46.     pilha *topo = NULL;
  47.  
  48.     int escolha = 0, n = 0;
  49.     while (escolha != 4)
  50.     {
  51.         printf("\n[1] - Inserir na pilha\n[2] - Remover da pilha\n[3] - Listar pilha\n[4] - Sair\nDigite uma opção: ");
  52.         scanf("%d", &escolha);
  53.         switch (escolha) {
  54.             case 1:
  55.                 printf("Digite o numero para o topo: ");
  56.                 scanf("%i", &n);
  57.                 printf("Numero %i adicionado\n", n);
  58.                 inserirPilha(&topo, n);
  59.                 break;
  60.             case 2:
  61.                 removerPilha(&topo);
  62.                 break;
  63.             case 3:
  64.                 printarPilha(&topo);
  65.                 break;
  66.             case 4:
  67.                 printf("Obrigado por usar o programa... Estou saindo...");
  68.                 break;
  69.             default:
  70.                 break;
  71.         }
  72.     }
  73.  
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement