home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / CTECHAPP.ZIP / CONTAINR.ZIP / QUEUE.CPP < prev    next >
C/C++ Source or Header  |  1990-01-27  |  993b  |  60 lines

  1. //  Header:     Queue    (A queue class)
  2. //  Version:    3.20
  3. //
  4. //  Language:   C++ 2.0
  5. //  Environ:    Any
  6. //
  7. //  Purpose:    Provides a general-purpose queue class
  8. //
  9. //  Written by: Scott Robert Ladd
  10.  
  11. #include "Queue.hpp"
  12.  
  13. extern "C"
  14.     {
  15.     #include "stddef.h"
  16.     }
  17.  
  18. // constructor
  19. Queue::Queue() : Stack()
  20.     {}
  21.  
  22. // copy constructor
  23. Queue::Queue(const Queue & q) : Stack(q)
  24.     {}
  25.  
  26. // assignment constructor
  27. void Queue::operator = (const Queue & q)
  28.     {
  29.     this->Stack::operator = (q);
  30.     }
  31.  
  32. // add new item
  33. int Queue::Store(void * item)
  34.     {
  35.     ListNode * new_node;
  36.  
  37.     new_node = new ListNode;
  38.  
  39.     if (NULL == new_node)
  40.         return 1;
  41.  
  42.     new_node->Next    = NULL;
  43.     new_node->DataPtr = item;
  44.  
  45.     if (Count > 0)
  46.         {
  47.         Tail->Next = new_node;
  48.         Tail       = new_node;
  49.         }
  50.     else
  51.         {
  52.         Head = new_node;
  53.         Tail = new_node;
  54.         }
  55.  
  56.     ++Count;
  57.  
  58.     return 0;
  59.     }
  60.