Advertisement
pmanriquez93

TAD Pilas

May 25th, 2014
543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. /*
  2.  * File:   pilas.h
  3.  * Author: Pablo
  4.  *
  5.  * Created on 25 de mayo de 2014, 01:49 AM
  6.  */
  7.  
  8. #ifndef PILAS_H
  9. #define PILAS_H
  10.  
  11. typedef int TElemento;
  12.  
  13. typedef struct nodo{
  14.     TElemento elem;
  15.     struct nodo* ptrSig;
  16. }TNodo;
  17.  
  18. typedef struct{
  19.     TNodo *cima;
  20. }TPila;
  21.  
  22. void crearPila(TPila *);
  23.  
  24. void apilar(TPila *, TElemento);
  25.  
  26. void desapilar(TPila *);
  27.  
  28. TElemento cima(TPila *);
  29.  
  30. int esVacia(TPila *);
  31.  
  32. void imprimirPila(TPila *);
  33.  
  34. #endif  /* PILAS_H */
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. #include <stdio.h>
  44. #include <stdlib.h>
  45. #include "pilas.h"
  46.  
  47. void crearPila(TPila *pila){
  48.     pila->cima = NULL;    
  49. }
  50.  
  51. void apilar(TPila *pila, TElemento elem){
  52.     TNodo *ptrNuevo;
  53.     ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
  54.    
  55.     ptrNuevo->elem = elem;
  56.     ptrNuevo->ptrSig = NULL;
  57.    
  58.     if (pila->cima == NULL){
  59.         pila->cima = ptrNuevo;
  60.     }else{
  61.         ptrNuevo->ptrSig = pila->cima;
  62.         pila->cima = ptrNuevo;
  63.     }
  64. }
  65.  
  66. void desapilar(TPila *pila){
  67.     if (pila->cima != NULL){
  68.         TNodo *ptrEliminar;
  69.         ptrEliminar = pila->cima;
  70.         pila->cima = pila->cima->ptrSig;        
  71.         free(ptrEliminar);
  72.     }else{
  73.         printf("No se puede desapilar de una pila vacia\n");
  74.     }    
  75. }
  76.  
  77. TElemento cima(TPila *pila){
  78.     if (pila->cima != NULL){
  79.         return(pila->cima->elem);        
  80.     }else{
  81.         printf("No hay cima en una pila vacia\n");
  82.     }    
  83. }
  84.  
  85. int esVacia(TPila *pila){
  86.     return (pila->cima == NULL);    
  87. }
  88.  
  89. void imprimirPila(TPila *pila){
  90.     TNodo *ptrRec;  
  91.     ptrRec = pila->cima;
  92.    
  93.     while (ptrRec != NULL){
  94.         printf(" %d ",ptrRec->elem);
  95.         ptrRec = ptrRec->ptrSig;
  96.     }
  97.     printf("NULL\n");
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement