home *** CD-ROM | disk | FTP | other *** search
/ PC Media 23 / PC MEDIA CD23.iso / share / prog / anubis / pilag.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-12  |  1.6 KB  |  58 lines

  1. // PILAG.H
  2. // (C) Anubis Software Agosto 1995
  3.  
  4. #ifndef PILAG.H
  5. #define PILAG.H
  6.  
  7. // -------------------------------------+
  8. // Inclusión de librerias BorlandC ++   |
  9. // -------------------------------------+
  10. #include <alloc.h>
  11.  
  12. // -------------------------------------+
  13. // Inclusión de librerias Anubis Sof    |
  14. // -------------------------------------+
  15. #include "generica.h"
  16.  
  17. // -------------------------------------+
  18. // Constantes de la librería            |
  19. // -------------------------------------+
  20. #define PILAG_MEMORIA_INSUFICIENTE  1
  21. #define PILAG_TODO_OK                    0
  22.  
  23.  
  24. // -------------------------------------+
  25. // Tipos Predefinidos de la librería    |
  26. // -------------------------------------+
  27. typedef TipoElemento *PilaGenerica;
  28.  
  29.  
  30. // --------------------------------------+
  31. // Macros de la libreria                 |
  32. // --------------------------------------+
  33. #define PilaGenericaAnula(x) (x=NULL)
  34. #define PilaGenericaTope(x)  ((*x).Apuntador)
  35. #define PilaGenericaVacia(x)  (x == NULL)
  36.  
  37. // ---------------------------------------+
  38. // Implementacion de las funciones        |
  39. // ---------------------------------------+
  40. WORD PilaGenericaEmpila( PilaGenerica *pila, void *apuntador)
  41. {
  42.     TipoElemento *elem;
  43.     elem = (TipoElemento *) malloc(sizeof(TipoElemento));
  44.     if(elem == NULL)
  45.         return(PILAG_MEMORIA_INSUFICIENTE);
  46.     (*elem).Siguiente = *pila;
  47.     *pila= elem;
  48.     (*elem).Apuntador = apuntador;
  49. }// end PilaGenericaEmpila
  50.  
  51. void PilaGenericaDesempila( PilaGenerica *pila)
  52. {
  53.     TipoElemento *elem = *pila;
  54.     *pila= (*(*pila)).Siguiente;
  55.     free(elem);
  56. }// end PilaGenericaDesempila
  57.  
  58. #endif