Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     struct Pilha{
  7.     int tamanho;
  8.     struct Pilha *topo;
  9.     };
  10.  
  11.     struct no {
  12.     int dado;
  13.     struct no *proximo;
  14.     };
  15.  
  16.     int IniciaPilha (struct Pilha *pilha){
  17.         pilha -> tamanho =0;
  18.         pilha -> topo = NULL;
  19.     }
  20.  
  21.     int Vazia (struct Pilha *pilha){
  22.         return (pilha -> topo == NULL);
  23.     }
  24.  
  25.     void Empilha(int x, struct Pilha *pilha) {
  26.     struct no *aux;                                 //Nó auxiliar
  27.     aux = (struct no *) malloc(sizeof(struct no));  //Inicializa o nó auxiliar
  28.     aux->dado = x;                                  //insere o dado passado pelo parâmetro no nó auxiliar
  29.     aux->proximo = pilha->topo;                        //Faz o com que o próximo elemento a ser retirado da pilha, seja o que está atualmente no topo
  30.     pilha->topo = aux;                              //Coloca o nó com o dado inserido no topo da pilha
  31.     pilha->tamanho++;                               //após a inserção, a pilha aumenta seu tamanho
  32. }
  33.     int Desempilha (struct Pilha *pilha){
  34.     struct no *aux;
  35.     int dado;
  36.     if (Vazia (pilha)){
  37.         printf("A pilha esta vazia \n");
  38.         return 0;
  39.     }
  40.     aux = pilha -> topo;
  41.     pilha -> topo = aux -> proximo;
  42.     dado = aux -> dado;
  43.     free (aux);
  44.     pilha -> tamanho --;
  45.     return dado;
  46.     }
  47.  
  48. int main() {
  49. int i, numero, max=5;
  50. struct Pilha *pilha;
  51. pilha = (struct Pilha *) malloc (sizeof(struct Pilha));
  52. IniciaPilha(pilha);
  53. for (i=0;i<max;i++) {
  54. printf("Leitura do valor (%d) :",i); scanf("%d",&numero);
  55. Empilha(numero, pilha);
  56. printf("Empilhou: %d \n", numero);
  57. }
  58. for(i=0;i<max;i++) {
  59. numero = Desempilha (pilha);
  60. printf ("Desempilhou: %d \n", numero);
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement