home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / windows / c / fldrvw / tarrays.h < prev   
Encoding:
C/C++ Source or Header  |  1993-04-27  |  1.9 KB  |  81 lines

  1. /********************************************************************/
  2. /*             Public Domain (P) 1992  Benjamin Cooley.             */
  3. /*                   tarrays.h - Array objects                      */
  4. /********************************************************************/
  5.  
  6. #ifndef _TARRAYS_H
  7. #define _TARRAYS_H
  8.  
  9. #ifndef __ARRAY_H
  10. #include <array.h>
  11. #endif
  12.  
  13. #ifndef __SORTARRY_H
  14. #include <sortarry.h>
  15. #endif
  16.  
  17. /*******************************/
  18. /* TkArray - Array base object */
  19. /*******************************/
  20.  
  21. _CLASSDEF(TkArray)
  22. class _CLASSTYPE TkArray : public Array
  23. {
  24.  
  25.   public:
  26.     TkArray(int anUpper, int aLower = 0, sizeType aDelta = 0) :
  27.       Array(anUpper, aLower, aDelta) {}
  28.  
  29.     virtual int itemsInArray() { return itemsInContainer; }
  30.  
  31.     virtual int search(Pvoid key);
  32.     virtual int indexOf(Object &object);
  33.  
  34.   protected:
  35.     virtual Pvoid keyOf(Object &object) { return &object; }
  36.     virtual int keyEqual(Pvoid key1, Pvoid key2);
  37.  
  38. };
  39.  
  40. /************************************/
  41. /* TkUnsortedArray - Unsorted array */
  42. /************************************/
  43.  
  44. _CLASSDEF(TkUnsortedArray)
  45. class _CLASSTYPE TkUnsortedArray : public TkArray
  46. {
  47.  
  48.   public:
  49.     TkUnsortedArray(int anUpper, int aLower = 0, sizeType aDelta = 0) :
  50.       TkArray(anUpper, aLower, aDelta) {}
  51.  
  52.     void insertAt(Object &object, int index);
  53.  
  54. };
  55.  
  56. /********************************/
  57. /* TkSortedArray - Sorted array */
  58. /********************************/
  59.  
  60. _CLASSDEF(TkSortedArray)
  61. class _CLASSTYPE TkSortedArray : public TkArray
  62. {
  63.  
  64.   public:
  65.     TkSortedArray(int anUpper, int aLower = 0, sizeType aDelta = 0) :
  66.       TkArray(anUpper, aLower, aDelta) {}
  67.  
  68.     virtual int search(Pvoid key);
  69.     virtual void add(Object &toAdd);
  70.     virtual void detach(Object &toDetach, DeleteType dt);
  71.     virtual void detach(int todetach, DeleteType dt = NoDelete)
  72.       { TkArray::detach(todetach, dt); }
  73.  
  74.   protected:
  75.     virtual int keyLessThan(Pvoid key1, Pvoid key2);
  76.  
  77. };
  78.  
  79. #endif
  80.  
  81.