Advertisement
juanjo12x

Pilas_Listas_Enlazadas

May 23rd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct nodo {
  5.         int info;
  6.         struct nodo *sig;
  7. } TNodo;
  8.  
  9. typedef struct {
  10.         TNodo *top;
  11. } TPila;
  12.  
  13. void Pila_crear(TPila**);
  14. void Pila_push(TPila**, int);
  15. void Pila_pop(TPila**);
  16. int Pila_top(TPila*);
  17. int Pila_estaVacia(TPila *);
  18. void Pila_finalizar(TPila **);
  19.  
  20.  
  21. void Pila_crear(TPila **pila){
  22.     TPila * pil;
  23.     pil= (TPila*)malloc(sizeof(TPila));
  24.     pil->top = NULL;
  25.     *pila=pil;
  26. }
  27. void Pila_push(TPila **pila, int valor){
  28.  
  29.     TNodo * ptr_nuevoElem;TPila *pil=*pila;
  30.     ptr_nuevoElem = (TNodo*)malloc(sizeof(TNodo));
  31.     if (ptr_nuevoElem){
  32.         ptr_nuevoElem->info = valor;
  33.         ptr_nuevoElem->sig = pil->top;
  34.         pil->top = ptr_nuevoElem;
  35.         *pila=pil;
  36.     }
  37. }
  38. int Pila_top( TPila*pila){
  39.     return (pila->top->info);
  40. }
  41. void Pila_pop(TPila** pila){
  42.     TPila* pil;TNodo *p;
  43.     pil=*pila;
  44.     if (pil!=NULL){
  45.         p=pil->top;
  46.         pil->top= pil->top->sig;
  47.         free(p);
  48.         *pila=pil;
  49.     }
  50. }
  51. int Pila_estaVacia(TPila* pila){
  52.     if (pila!=NULL) return 0;
  53.     else return 1;
  54. }
  55. void Pila_finalizar(TPila** pila){
  56.     TPila * pil=*pila;TNodo *p;
  57.     if (pil!=NULL){
  58.         while (pil->top!=NULL){
  59.             p=pil->top;
  60.             pil->top=pil->top->sig;
  61.             free(p);
  62.         }
  63.         *pila=pil;
  64.     }
  65. }
  66. int main(int argc, char** argv) {
  67.     TPila *pila;int cima;
  68.     Pila_crear(&pila);
  69.     Pila_push(&pila,7);
  70.     cima= Pila_top(pila);    
  71.     Pila_push(&pila,8);    
  72.     Pila_push(&pila,9);
  73.     Pila_pop(&pila);
  74.     cima= Pila_top(pila);
  75.     int valido= Pila_estaVacia(pila);
  76.    // if (valido) printf("Esta vacia");
  77.     //else printf("No esta vacia");
  78.     printf("%d\n",cima);
  79.     Pila_finalizar(&pila);
  80.     return (EXIT_SUCCESS);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement