home *** CD-ROM | disk | FTP | other *** search
/ Jason Aller Floppy Collection / 197.img / TCPLUS-8.ZIP / CLASSINC.ZIP / DEQUE.H < prev    next >
C/C++ Source or Header  |  1990-05-04  |  4KB  |  185 lines

  1. #ifndef __DEQUE_H
  2. #define __DEQUE_H
  3.  
  4. //
  5. // This file contains proprietary information of Borland International.
  6. // Copying or reproduction without prior written approval is prohibited.
  7. //
  8. // Copyright (c) 1990
  9. // Borland International
  10. // 1800 Scotts Valley Dr.
  11. // Scotts Valley, CA 95066
  12. // (408) 438-8400
  13. //
  14.  
  15. // Contents ----------------------------------------------------------------
  16. //
  17. //      Deque
  18. //
  19. // Description
  20. //
  21. //      Defines the class Deque.
  22. //
  23. // End ---------------------------------------------------------------------
  24.  
  25. // Interface Dependencies ---------------------------------------------------
  26.  
  27. #ifndef __IOSTREAM_H
  28. #include <iostream.h>
  29. #define __IOSTREAM_H
  30. #endif
  31.  
  32. #ifndef __CLSTYPES_H
  33. #include <clstypes.h>
  34. #endif
  35.  
  36. #ifndef __OBJECT_H
  37. #include <object.h>
  38. #endif
  39.  
  40. #ifndef __CONTAIN_H
  41. #include <contain.h>
  42. #endif
  43.  
  44. #ifndef __DBLLIST_H
  45. #include <dbllist.h>
  46. #endif
  47.  
  48. // End Interface Dependencies ------------------------------------------------
  49.  
  50. // Class //
  51.  
  52. class Deque:  public Container
  53. {
  54. public:
  55.     virtual ~Deque();
  56.  
  57.             Object&         peekLeft() const { return theDeque.peekAtHead(); }
  58.             Object&         peekRight() const { return theDeque.peekAtTail(); }
  59.             Object&         getLeft();
  60.             Object&         getRight();
  61.             void            putLeft( Object& o ) { theDeque.addAtHead( o ); }
  62.             void            putRight( Object& o ) { theDeque.addAtTail( o ); }
  63.  
  64.     virtual ContainerIterator& initIterator() const;
  65.             ContainerIterator& initReverseIterator() const;
  66.  
  67.     virtual classType       isA() const;
  68.     virtual char           *nameOf() const;
  69.     virtual hashValueType   hashValue() const;
  70.  
  71. private:
  72.     DoubleList    theDeque;
  73. };
  74.  
  75. // Description -------------------------------------------------------------
  76. //
  77. //         Defines the container class Deque.  A deque is a double-ended queue.
  78. //      You may inspect, add, and remove elements at either end of the 
  79. //      deque.
  80. //
  81. // Public Members
  82. //
  83. //      peekLeft
  84. //
  85. //      Returns a reference to the object at the left end of the deque.
  86. //      The object is still owned by the deque.
  87. //
  88. //      peekRight
  89. //
  90. //      Returns a reference to the object at the right end of the deque.
  91. //      The object is still owned by the deque.
  92. //
  93. //      putLeft
  94. //
  95. //      Enqueues an object at the left end.
  96. //
  97. //      putRight
  98. //
  99. //      Enqueues an object at the right end.
  100. //
  101. //      getLeft
  102. //
  103. //      Dequeues an object from the left end.
  104. //
  105. //      getRight
  106. //
  107. //      Dequeues an object from the right end.
  108. //
  109. //      initIterator
  110. //
  111. //      Left-to-right Deque iterator initializer.
  112. //
  113. //      initReverseIterator
  114. //
  115. //      Right-to-left Deque iterator initializer.
  116. //
  117. //         isA
  118. //
  119. //         Returns the class type for a deque.
  120. //
  121. //         nameOf
  122. //
  123. //         Returns a pointer to the character string "Deque."
  124. //     
  125. //         hashValue
  126. //
  127. //         Returns a pre-defined value for deques.
  128. //
  129. // Inherited Members
  130. //
  131. //      Deque( Deque& )
  132. //
  133. //      Copy constructor.  Inherited from Container.
  134. //
  135. //      isEmpty
  136. //
  137. //         Inherited from Container.
  138. //
  139. //         isEqual
  140. //
  141. //         Inherited from Container.
  142. //
  143. //      forEach
  144. //
  145. //         Inherited from Container.
  146. //
  147. //      firstThat
  148. //
  149. //         Inherited from Container.
  150. //
  151. //      lastThat
  152. //
  153. //         Inherited from Container.
  154. //
  155. //      getItemsInContainer
  156. //
  157. //         Inherited from Container.
  158. //
  159. //      printOn
  160. //
  161. //         Inherited from Container.
  162. //
  163. //      printHeader
  164. //
  165. //         Inherited from Container.
  166. //
  167. //      printSeparator
  168. //
  169. //         Inherited from Container.
  170. //
  171. //      printTrailer
  172. //
  173. //         Inherited from Container.
  174. //
  175. // Private Members
  176. //
  177. //      theDeque
  178. //
  179. //      The implementation of the deque.
  180. //
  181. // End ---------------------------------------------------------------------
  182.  
  183.  
  184. #endif // ifndef __DEQUE_H //
  185.