bool DblLinkedList::insert(string str) { //Cases: //Case 1: no nodes //case 2: placing node in front //case 3: placing node in middle //case 4: node already exists (toss) //case 5: back if (head == nullptr) { // empty list Node* temp = new Node(str); // case 1 head = tail = temp; count++; return true; } else { it = head; while (str > it->data && it != tail) { //assume str is less than it->data going forward it = it->next; } if (it->data == str) { //case 4 return false; } else if (it == head) { //case 2 Node* temp = new Node(str); it->prev = temp; temp->next = head; head = temp; count++; return true; } else if (it == tail) { //case 5 Node* temp = new Node(str); tail->next = temp; tail->next->prev = tail; tail = tail->next; count++; return true; } else{ //case 4 Node* temp = new Node(str); it->next->prev = temp; it->next->prev->prev = temp->next; it->next = it->next->prev; count++; return true; } } return false; }