//DRIVER void Delete() { int employee; bool exists; cin >> employee; if(employee >= 0) { exists = database.deleteEmployee(employee); if(exists == false) { cout << "Error: no employee with number "; cout << setw(2) << setfill('0') << employee; cout << " exists." << endl; } } } //DIVISIONLIST bool DivisionList::deleteEmployee(int emplNum) { DivisionNode* temp; temp = head; bool exists = false; while(temp != NULL) { exists = temp->deleteEmployee(emplNum); if(exists == true) break; else temp = temp->getNext(); } return exists; } //DIVISIONNODE bool DivisionNode::deleteEmployee(int emplNum) { return employees.deleteEmployee(emplNum); } //EMPLOYEELIST bool EmployeeList::deleteEmployee(int emplNum) { if(head == NULL) return false; EmployeeNode* temp = head; EmployeeNode* prev = NULL; bool exists = true; while (temp != NULL) { if (temp->getEmplNumber() == emplNum) { exists = true; break; } prev = temp; temp = temp->getNext(); } if(temp == NULL) exists = false; else if(temp == head) { head = head->getNext(); delete temp; exists = true; } else { prev->setNext(temp->getNext()); delete temp; exists = true; } return exists; }