00001
00002
00003
00004
00005 #ifndef SET_H_INCLUDED
00006 #define SET_H_INCLUDED
00007
00009 typedef unsigned int * Set;
00010
00021 typedef enum { SetOk, SetInvalidRange, SetInvalidPosition, SetNoMemory } SetStatus;
00022
00029 Set createSet(int l, int h);
00030
00038 Set createFilledSet(int l, int h);
00039
00040
00049 bool querySetElement(Set s, int pos);
00050
00058 void insertSetElement(Set s, int pos);
00059
00067 void deleteSetElement(Set s, int pos);
00068
00075 inline
00076 int getLowestElement(Set s)
00077 { return *( ( (int *) s ) + 1 ); }
00078
00085 inline
00086 int getHighestElement(Set s)
00087 { return *( (int *) s ); }
00088
00095 bool isWithinBoundsOfSet(Set s, int pos);
00096
00102 SetStatus getSetStatus();
00103
00112 void deleteSetRange(Set s, int l, int h);
00113
00118 inline
00119 void deleteSet(Set s)
00120 { deleteSetRange( s, getLowestElement( s ), getHighestElement( s ) ); }
00121
00130 void insertSetRange(Set s, int l, int h);
00131
00135 void destroySet(Set s);
00136
00137 #endif // SET_H_INCLUDED