home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / dho.zip / DHO / SRC / STACK.CC < prev    next >
C/C++ Source or Header  |  1995-08-27  |  2KB  |  80 lines

  1. /****************************************/
  2. /*    Developer Helper Object Set       */
  3. /*  (C) 1994-95 Thomas E. Bednarz, Jr.  */
  4. /*     All rights reserved              */
  5. /***************************************/
  6.  
  7. /* $Id: stack.cc 1.3 1995/08/13 03:21:12 teb Exp $ */
  8.  
  9.  
  10. #include"stack.h"
  11. #include<stdlib.h>
  12. #include<iostream.h>
  13.  
  14.  
  15. //-------------------------------------------------------------------
  16. //  TStack
  17. TStack::TStack()
  18. {
  19.    fFirst = (TNode*)NULL;
  20. }
  21.  
  22.  
  23. //-------------------------------------------------------------------
  24. //  ~TStack
  25. TStack::~TStack()
  26. {
  27.    ClearStack();
  28. }
  29.  
  30.  
  31. //-------------------------------------------------------------------
  32. //  Push
  33. void TStack::Push(TObject *obj)
  34. {
  35.    TNode *nd = new TNode(obj);
  36.    nd->setNext(fFirst);
  37.    fFirst = nd;
  38. }
  39.  
  40.  
  41. //-------------------------------------------------------------------
  42. //  Pop
  43. TObject *TStack::Pop()
  44. {
  45.    TObject *tmp = fFirst->getObject();
  46.    TNode *tnde = fFirst;
  47.    fFirst = fFirst->getNext();
  48.    delete tnde;
  49.    return tmp;
  50. }
  51.  
  52. //-------------------------------------------------------------------
  53. //  EmptyStack
  54. int TStack::EmptyStack()
  55. {
  56.    return (fFirst==NULL);
  57. }
  58.  
  59.  
  60. //-------------------------------------------------------------------
  61. //  ClearStack
  62. void TStack::ClearStack()
  63. {
  64.   TNode *tmp;
  65.   while (!EmptyStack())
  66.   {
  67.     tmp = fFirst;
  68.     fFirst = tmp->getNext();
  69.     delete tmp;
  70.   }   
  71. }
  72.  
  73.  
  74. //-------------------------------------------------------------------
  75. //  getClassName
  76. const char *TStack::getClassName(void)
  77. {
  78.   return "TStack";  
  79. }
  80.