I'm having a bit of an issue figuring this out and was hoping to get a push in the right direction. I need to create a method of creating a union of two sets. I also need to make one for the intersection. Any advice you can give would be greatly appreciated as I am WAY over my head.

The area I'm most concerned about is line 100 - 117

// list.cpp // simple linked list program #include <STDLIB.H> #include <STRING> #include <IOSTREAM> using std::cout; using std::string; // node object for the linked list struct Node { int data; Node* link; }; // implement a singly linked list class LinkedList {protected: Node* front; // pointer to the front of the linked list Node* back; // pointer to the last node in the linked list public: // constructs an empty list LinkedList() { front = back = NULL; } // search the list for a target value // return index if found or -1 if not found int Search(int targetVal) { Node* p; int count = 0; for (p = front; p != NULL; p = p->link) { if (p->data == targetVal) { return count; } count++; } return -1; } // deletes the list ~LinkedList() { // remove objects from the list as long as list is not empty while(Length() > 0) { RemoveFront(); } } // inserts a node at the front of the list void InsertFront(int newValue) { Node* newNode = new Node; newNode->data = newValue; if (front == NULL) { // list must be empty so make front & back point to new node front = back = newNode; newNode->link = NULL; } else { // list is not empty so insert between front and first node newNode->link = front; front = newNode; } } // removes a node from the front of the list int RemoveFront() { int returnVal; Node *temp; if (front != NULL) { // list is not empty so remove & return first node returnVal = front->data; temp = front; front = front->link; } else { // list is empty just return 0 returnVal = 0; } return returnVal; } // returns the length of the list int Length() { Node* p; int count = 0; // loop through each node in the list until we find a null value for (p = front; p != NULL; p = p->link) { count++; } return count; } // outputs a string containing all the data values in the list void Output() { Node* p; // loop through each node in the list until we find a null value for (p = front; p != NULL; p = p->link) { cout << p->data << ", "; } } // use inheritance to create a Set class from the LinkedList class class Set : public LinkedList { public: // insert a new value only if it is unique (not already in the set) void Insert(int newValue) { } // make this the union of two sets void Union(Set& a, Set& B)/> { } // make this the intersection of two sets void Intersection(Set& a, Set& B)/> { } }; }; void main() { Set setA, setB, setUnion, setIntersection; setA.Insert(5); setA.Insert(2); setA.Insert(3); setA.Insert(5); setA.Insert(2); cout << "Contents of setA: "; setA.Output(); cout << "\n\n"; setB.Insert(1); setB.Insert(2); setB.Insert(4); cout << "Contents of setB: "; setB.Output(); cout << "\n\n"; setUnion.Union(setA, setB); cout << "Contents of setA union setB: "; setUnion.Output(); cout << "\n\n"; setIntersection.Intersection(setA, setB); cout << "Contents of setA intersection setB: "; setIntersection.Output(); cout << "\n\n"; system("PAUSE"); }

This post has been edited by **Outtey22**: 05 September 2008 - 03:57 AM