Example #1
0
Set<ElemType> *Set<ElemType>::Union(Set *otherSet)
{
	    Iterator<ElemType> *iterator;
    Set *result;
    
    result = new Set<ElemType>(cmp);
    iterator = CreateIterator();
    while (iterator->HasNext()) {
        result->AddElement(iterator->Next());
    }
    delete iterator;
    iterator = otherSet->CreateIterator();
    while (iterator->HasNext()) {
        result->AddElement(iterator->Next());
    }
    delete iterator;
    return (result);
}
Example #2
0
Set<ElemType> *Set<ElemType>::Intersection(Set *otherSet)
{
    Iterator<ElemType> *iterator;
    Set *result;

    result = new Set<ElemType>(cmp);
	    iterator = CreateIterator();
    while (iterator->HasNext()) {
        ElemType elem = iterator->Next();
        if (otherSet->Contains(elem))
            result->AddElement(elem);
    }
    delete iterator;
    return (result);
}