Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

the removeDifferent() method: setA.removeDifferent(setB) should remove from setA

ID: 3765790 • Letter: T

Question

the removeDifferent() method: setA.removeDifferent(setB) should remove from setA any values that are not also in setB (i.e. setA becomes the intersection of the two sets) - the parameter should be a const reference: Current non-working code:

void IntSet::removeDifferent (const IntSet &setB;) bool flagfalse; int holder; for(int i-e;i size-Array;i++) flag -false; for(int k-e; k setB. size-Array,k++) if (setB. dynamicArrayl k1--dynamicArray[1] ) flag -true; holder = setB . dynami CArray[k]; holdersetB.dynamicArray[k]j; if(flagfalse) remove(dynamicArray[i]); add (holder);

Explanation / Answer

No need to add element in holder again. Because you are deleting existing node

void Inset::removeDifferent(const Inset &setB) {

   bool flag = false;
   int i, k;

   for(i = 0; i < size_Array; i++) {
       flag = false;

       for(k = 0; k < setB.size_Array; k++) {
           if(setB.dynamicArray[k] == dynamicArray[i]) {
               flag = true;
           }
       }
       if(flag == false)
           remove(dynamicArray[i]);
   }
}