Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. bool DblLinkedList::insert(string str) {
  2. //Cases:
  3. //Case 1: no nodes
  4. //case 2: placing node in front
  5. //case 3: placing node in middle
  6. //case 4: node already exists (toss)
  7. //case 5: back
  8. if (head == nullptr) { // empty list
  9. Node* temp = new Node(str); // case 1
  10. head = tail = temp;
  11. count++;
  12. return true;
  13. }
  14. else {
  15. it = head;
  16. while (str > it->data && it != tail) { //assume str is less than it->data going forward
  17. it = it->next;
  18. }
  19. if (it->data == str) { //case 4
  20. return false;
  21. }
  22. else if (it == head) { //case 2
  23. Node* temp = new Node(str);
  24. it->prev = temp;
  25. temp->next = head;
  26. head = temp;
  27. count++;
  28. return true;
  29. }
  30. else if (it == tail) { //case 5
  31. Node* temp = new Node(str);
  32. tail->next = temp;
  33. tail->next->prev = tail;
  34. tail = tail->next;
  35. count++;
  36. return true;
  37. }
  38. else{ //case 4
  39. Node* temp = new Node(str);
  40. it->next->prev = temp;
  41. it->next->prev->prev = temp->next;
  42. it->next = it->next->prev;
  43. count++;
  44. return true;
  45. }
  46. }
  47. return false;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement