template class Set { public: Set(int = 2); ~Set() { delete [] setPtr ; } int insert(const T&); void print(); T* unionSet(const T&); T* intersectSet(const T&); private: T* setPtr; int pos; int length; }; template Set::Set(int s) { length = s; setPtr = new T[length]; pos = 0; } template int Set::insert(const T& item) { T temp; if(pos == length) { T *temp2 = new T[length]; for (int i = 0; i < length; i++) temp2[i] = setPtr[i]; delete [] setPtr; T *setPtr = new T[length+10]; for (int j = 0; j < length; j++) setPtr[j] = temp2[j]; delete [] temp2; length += 10; } int i = 0; while(temp = setPtr[i++]) if(temp == item) return 0; setPtr[pos++] = item; int j; T index; for (i=0; i < pos; i++){ index = setPtr[i]; j = i; while ((j > 0) && (setPtr[j-1] > index)){ setPtr[j] = setPtr[j-1]; j--; } setPtr[j] = index; } return 1; } template R* Set::intersectSet(Set& inter) { } template void Set::print() { int i = 0; while(i < pos){ cout << setPtr[i] << " "; i++; } cout << endl; }