I will provide my LinkedList from my last lab. LinkedList.cpp ~~~~~~~~~~~~~~ #include \"LinkedList.h\" LinkedList::LinkedList() { first = last = NULL; } LinkedList::~LinkedList() { while (first != NULL) { Node *temp; temp = first; first = first->next; free(temp); } last = NULL; } void LinkedList::insertAtBack(int valueToInsert) { Node *temp = (Node *)malloc(sizeof(Node)); temp->val = valueToInsert; temp->next = NULL; if (last == NULL) first = last = temp; else { last->next = temp; last = temp; } } bool LinkedList::removeFromBack() { if (first == NULL) return false; else if (first == last) { free(first); first = last = NULL; } else { Node *temp; temp = first; while (temp->next != last) temp = temp->next; last = temp; temp = temp->next; free(temp); last->next = NULL; } return true; } void LinkedList::print() { Node *temp = first; while (temp != last) { cout << temp->val << \" \"; temp = temp->next; } if (temp != NULL) cout << temp->val; } bool LinkedList::isEmpty() { if (first == last) return true; return false; } int LinkedList::size() { int count = 0; Node *temp = first; if (temp == NULL) return count; while (temp != last) { count++; temp = temp->next; } return count + 1; } void LinkedList::clear() { while (first != NULL) { Node *temp; temp = first; first = first->next; free(temp); } last = NULL; } /*Exercise2 */ void LinkedList::insertAtFront(int valueToInsert) { Node *temp = (Node *)malloc(sizeof(Node)); temp->val = valueToInsert; if (last == NULL) first = last = temp; else { temp->next = first; first = temp; } } bool LinkedList::removeFromFront() { if (first == NULL) return false; Node *temp = first; first = first->next; free(temp); if (first == NULL) last = NULL; return true; } LinkedList.h ~~~~~~~~~~~ #include \"LinkedList.h\" LinkedList::LinkedList() { first = last = NULL; } LinkedList::~LinkedList() { while (first != NULL) { Node *temp; temp = first; first = first->next; free(temp); } last = NULL; } void LinkedList::insertAtBack(int valueToInsert) { Node *temp = (Node *)malloc(sizeof(Node)); temp->val = valueToInsert; temp->next = NULL; if (last == NULL) first = last = temp; else { last->next = temp; last = temp; } } bool LinkedList::removeFromBack() { if (first == NULL) return false; else if (first == last) { free(first); first = last = NULL; } else { Node *temp; temp = first; while (temp->next != last) temp = temp->next; last = temp; temp = temp->next; free(temp); last->next = NULL; } return true; } void LinkedList::print() { Node *temp = first; while (temp != last) { cout << temp->val << \" \"; temp = temp->next; } if (temp != NULL) cout << temp->val; } bool LinkedList::isEmpty() { if (first == last) return true; return false; } int LinkedList::size() { int count = 0; Node *temp = first; if (temp == NULL) return count; while (temp != last) { count++; temp = temp->next; } return count + 1; } void LinkedList::clear() { while (first != NULL) { Node *temp; temp = first; first = first->next; free(temp); } last = NULL; } /*Exercise2 */ vo.