ref_que.hh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /********************************************************************** <BR>
  2. This file is part of Crack dot Com's free source code release of
  3. Golgotha. <a href="http://www.crack.com/golgotha_release"> <BR> for
  4. information about compiling & licensing issues visit this URL</a>
  5. <PRE> If that doesn't help, contact Jonathan Clark at
  6. golgotha_source@usa.net (Subject should have "GOLG" in it)
  7. ***********************************************************************/
  8. #ifndef __REF_QUE_HPP_
  9. #define __REF_QUE_HPP_
  10. template <class T>
  11. class i4_reference_que_class
  12. {
  13. class node
  14. {
  15. friend class i4_reference_que_class<T>;
  16. T *reference;
  17. node *last;
  18. public :
  19. node(T *ref, node *last) : reference(ref), last(last) {}
  20. } *first,*last;
  21. public :
  22. i4_reference_que_class()
  23. {
  24. first=last=0;
  25. }
  26. void enque(T *reference)
  27. {
  28. first=new node(reference,first);
  29. if (!last)
  30. last=first;
  31. }
  32. T *deque()
  33. {
  34. if (!last)
  35. return 0;
  36. else
  37. {
  38. node *del=last;
  39. T *p =last->reference;
  40. last=last->last;
  41. delete del;
  42. if (!last)
  43. first=0;
  44. return p;
  45. }
  46. }
  47. } ;
  48. #endif