Here is my problem. I am not sure how to write the syntax for union of two sets. Please scroll down near the bottom in the class Set: LinkedList. You will see the void Union(Set& a, Set& function with some code that I am struggling with. Please give me some guidance in this are so that I may learn how perform this union. I am sure that once I figure out how to do the union I will be able to do the intersection with relative ease. I know that SetA Union SetB = 1,2,3,4,5 and SetA Intersection SetB = 2. I am just not sure how to write the code to achieve this output. Your guidance is greatly appreciated.

// 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; } // 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 << ", "; } } // 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; } }; // 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) { int duplicate = Search(newValue); if (duplicate == -1) InsertFront(newValue); } void Union(Set& a, Set& B)/> { Node* p; for (p = a.front; p != NULL; p = p->link) { p->link; } for (p = b.front; p != NULL; p = p->link) { p->link; } } // make this the intersection of two sets void Intersection(Set& a, Set& B)/> { } }; int 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(4); setB.Insert(2); setB.Insert(1); 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"; }

**MOD EDIT:**Please

*Thanks, gabehabe*