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

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