home *** CD-ROM | disk | FTP | other *** search
/ VRML Tools for 3D Cyberspace / VRML_Tools_For_3D_Cyberspace.iso / amber / include / stack.hpp < prev    next >
C/C++ Source or Header  |  1996-07-01  |  2KB  |  86 lines

  1. //**********************************************************************
  2. //  DIVE Laboratories, Inc.
  3. //  Copyright(c) 1995
  4. //  All rights reserved
  5. //  FILE:   STACK.HPP
  6. //
  7. //  DESCRIPTION
  8. //
  9. //  Author: Brian D. Green
  10. //
  11. //  Modification History:
  12. //  3/22/95 Created
  13. //
  14. //**********************************************************************
  15. #ifndef _STACK_HPP
  16. #define _STACK_HPP
  17. #include <stddef.h>
  18. #include <stdlib.h>
  19. #include <stdio.h>
  20. #include <string.h>
  21.  
  22. #define     DEFAULT        -1
  23.  
  24. class dblNodeClass {
  25.  
  26. public:
  27.  
  28.     void  *obj;
  29.     dblNodeClass *next;
  30.     dblNodeClass *prev;
  31.  
  32.     dblNodeClass( void *listOBJ);
  33.     dblNodeClass();
  34.  
  35.    ~dblNodeClass();
  36.  
  37.     };
  38.  
  39. // -------------------------------------------------------------------
  40.  
  41. class stackClass {
  42.   
  43.    protected:
  44.  
  45.       dblNodeClass *listPtr;
  46.       dblNodeClass *head, *tail;
  47.         int count, maxSize;
  48.  
  49.     //------------------------------------------------------------
  50.     // user specified print and remove functions
  51.     //------------------------------------------------------------
  52.  
  53.    public:
  54.  
  55.     //------------------------------------------------------------
  56.     // list manipulation fcns
  57.     //------------------------------------------------------------
  58.  
  59.       void     reset();
  60.       int    isEmpty();
  61.         int   length();
  62.  
  63.       void  push(void *listOBJ);
  64.         void  *pop();
  65.         void  *getTop();
  66.  
  67.  
  68.     //------------------------------------------------------------
  69.     // overloaded operators
  70.     //------------------------------------------------------------
  71.  
  72.       void operator=( stackClass* otherList );
  73.              
  74.     // ------------------------------------------------------------
  75.     // constructors & destructors
  76.     // ------------------------------------------------------------
  77.  
  78.       stackClass(int size=32);
  79.       stackClass( stackClass* otherList );
  80.  
  81.      ~stackClass();
  82. };
  83.  
  84. #endif
  85.  
  86.