Advertisement
Allenoboy

pilha_estatica.c

May 3rd, 2024
1,040
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.44 KB | None | 0 0
  1. # define MAX_CAPACITY  4
  2. # define CHEIA         3
  3. # define VAZIA        -1
  4.  
  5. # include <stdio.h>
  6. # include <stdlib.h>
  7.  
  8.  
  9.  
  10. typedef struct
  11. {
  12.        int vetor [ MAX_CAPACITY ];
  13.        int topo;
  14. }
  15. Pilha;
  16.  
  17. Pilha init_Pilha ( void )
  18. {
  19.      Pilha pilha;
  20.      pilha . topo = VAZIA;
  21.  
  22.      return pilha;
  23. }
  24.  
  25. void new_Pilha ( Pilha * pilha ) { pilha -> topo = VAZIA; }
  26.  
  27. void push ( Pilha * pilha , int valor )
  28. {
  29.     if ( pilha -> topo == CHEIA )
  30.     {
  31.       printf ( "- A pilha está cheia!\n" );
  32.       return;  
  33.     }
  34.  
  35.     pilha -> vetor [ ++ pilha -> topo ] = valor;
  36.     printf ( "- Adicionado no índice da pilha %d o valor [ %d ]\n" , pilha -> topo , pilha -> vetor [ pilha -> topo ] );
  37. }
  38.  
  39. void pop ( Pilha * pilha )
  40. {
  41.     if ( pilha -> topo == VAZIA )
  42.     {
  43.       printf ( "- A pilha está vazia!\n" );
  44.       return;  
  45.     }
  46.  
  47.     printf ( "- Removido do índice %d da pilha o valor [ %d ]\n" , pilha -> topo , pilha -> vetor [ pilha -> topo ] );
  48.     pilha -> vetor [ pilha -> topo ] = -999;
  49.     pilha -> topo --;
  50. }
  51.  
  52. int main ()
  53. {  
  54.    system ( "CHCP 65001 > nul" );
  55.  
  56.    Pilha pilha; new_Pilha ( &pilha );
  57.    
  58.    push ( &pilha , 44 );
  59.    push ( &pilha , 55 );
  60.    push ( &pilha , 22 );
  61.    push ( &pilha , 11 );
  62.    push ( &pilha , 99 );
  63.  
  64.    pop ( &pilha );
  65.    printf ( "Dado ainda está lá: %d\n" , pilha . vetor [ 3 ] );
  66.  
  67.    push ( &pilha , 77 );
  68.    printf ( "Dado ainda está lá: %d\n" , pilha . vetor [ 3 ] );
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement