shouldz

Estrutura de Dados - Pilha I/R

Sep 26th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*
  5. /@autor: Shouldz
  6. /@Linguagem: C
  7. /@Descrição: [Estrutura de Dados] Pilha com inserir e remover funcionais.
  8. */
  9.  
  10. typedef struct no{
  11.     int valor;
  12.     struct no *proximo;
  13. }no;
  14.  
  15. no *criar_no(int valor){
  16.     no *criar_no = malloc(sizeof(no));
  17.     criar_no -> valor = valor;
  18.     criar_no -> proximo = NULL;
  19.     return criar_no;
  20. }
  21.  
  22. no *push(no *pilha, int valor){
  23.     no *novo_no = criar_no(valor);
  24.     //caso base
  25.     if(pilha == NULL){
  26.         return novo_no;
  27.     }else{
  28.         //existe elemento, elemento novo recebe resto da pilha
  29.         novo_no -> proximo = pilha;
  30.         return novo_no;
  31.     }
  32. }
  33.  
  34. no *pop(no *pilha){
  35.     //caso base
  36.     if(pilha == NULL){
  37.         return NULL;
  38.     }else{
  39.         //remove topo, com a pilha recebendo o proximo
  40.         pilha = pilha -> proximo;
  41.         return pilha;
  42.     }
  43. }
  44.  
  45. void imprimir(no *pilha){
  46.     no *auxiliar = pilha;
  47.     while(auxiliar != NULL){
  48.         printf("[%d]\n", auxiliar -> valor);
  49.         auxiliar = auxiliar -> proximo;
  50.     }
  51. }
  52.  
  53. int main(){
  54.     no *pilha = NULL;
  55.     pilha = push(pilha, 10);
  56.     pilha = push(pilha, 20);
  57.     pilha = push(pilha, 30);
  58.     imprimir(pilha);
  59.     pilha = pop(pilha);
  60.     pilha = push(pilha, 50);
  61.     printf("--------");
  62.     imprimir(pilha);
  63.  
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment