Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. void SSL::addByEngineType(Vehicle* vehicleIn)
  2. {
  3. ListNode* temp = new ListNode();
  4. ListNode* newNode = new ListNode();
  5. newNode->setData(vehicleIn);
  6.  
  7. while (true)
  8. {
  9. temp = head;
  10. if (head == NULL)//checks to see if the head empty
  11. {
  12. head = newNode;
  13. newNode->setPrevious(nullptr);
  14. newNode->setNext(nullptr);
  15. newNode->setSkip(nullptr);
  16. break;
  17. }
  18. else if (*(newNode->getData()->getEngine()) == *(head->getData()->getEngine())) //compares the heads make to the inputed make
  19. {
  20. while (temp->getNext() != NULL) // cycles to the end of the data where the make is still the same
  21. {
  22. if (*(newNode->getData()->getEngine()) == *(temp->getNext()->getData()->getEngine()))
  23. {
  24. temp = temp->getNext(); // cycles to end of the head
  25. }
  26. else
  27. {
  28. break;
  29. }
  30. }
  31. temp->setNext(newNode);
  32. newNode->setPrevious(temp);
  33. newNode->setNext(head->getSkip()); // sets next to the next group
  34. break;
  35. }
  36. else
  37. {
  38. if (temp->getSkip() == nullptr)
  39. {
  40. temp->setSkip(newNode);//sets the new list to
  41. while (temp->getNext() != NULL)
  42. {
  43. temp = temp->getNext();
  44. }
  45. newNode->setNext(temp->getNext());
  46. temp->setNext(newNode);
  47. newNode->setPrevious(temp);
  48.  
  49. break;
  50. }
  51. else
  52. {
  53. while (temp->getSkip() != nullptr)
  54. {
  55. if (*(newNode->getData()->getEngine()) != *(temp->getSkip()->getData()->getEngine()))
  56. {
  57. temp = temp->getSkip(); //cycles through the skips to get to the last one
  58. }
  59. else
  60. {
  61. break;
  62. }
  63. }
  64. if (*(newNode->getData()->getEngine()) == *(temp->getData()->getEngine()))
  65. {
  66. while (temp->getNext() != nullptr)
  67. {
  68. if (*(newNode->getData()->getEngine()) == *(temp->getData()->getEngine()))
  69. {
  70. temp = temp->getNext(); //cycles through the group to the last member of that group
  71. }
  72. else
  73. {
  74. break;
  75. }
  76. }
  77. temp->setNext(newNode);
  78. newNode->setPrevious(temp);
  79. newNode->setNext(nullptr);
  80. }
  81. if (*(newNode->getData()->getEngine()) != *(temp->getSkip()->getData()->getEngine()))
  82. {
  83. temp->setSkip(newNode);
  84. }
  85. while (temp->getNext() != nullptr)
  86. {
  87. temp = temp->getNext();
  88. }
  89. temp->setNext(newNode);
  90. newNode->setPrevious(temp);
  91. newNode->setNext(nullptr);
  92. break;
  93. }
  94. }
  95. }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement