Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement