Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void SSL::addByEngineType(Vehicle* vehicleIn)
- {
- ListNode* temp = new ListNode();
- ListNode* newNode = new ListNode();
- newNode->setData(vehicleIn);
- while (true)
- {
- temp = head;
- if (head == NULL)//checks to see if the head empty
- {
- head = newNode;
- newNode->setPrevious(nullptr);
- newNode->setNext(nullptr);
- newNode->setSkip(nullptr);
- break;
- }
- else if (*(newNode->getData()->getEngine()) == *(head->getData()->getEngine())) //compares the heads make to the inputed make
- {
- while (temp->getNext() != NULL) // cycles to the end of the data where the make is still the same
- {
- if (*(newNode->getData()->getEngine()) == *(temp->getNext()->getData()->getEngine()))
- {
- temp = temp->getNext(); // cycles to end of the head
- }
- else
- {
- break;
- }
- }
- temp->setNext(newNode);
- newNode->setPrevious(temp);
- newNode->setNext(head->getSkip()); // sets next to the next group
- break;
- }
- else
- {
- if (temp->getSkip() == nullptr)
- {
- temp->setSkip(newNode);//sets the new list to
- while (temp->getNext() != NULL)
- {
- temp = temp->getNext();
- }
- newNode->setNext(temp->getNext());
- temp->setNext(newNode);
- newNode->setPrevious(temp);
- break;
- }
- else
- {
- while (temp->getSkip() != nullptr)
- {
- if (*(newNode->getData()->getEngine()) != *(temp->getSkip()->getData()->getEngine()))
- {
- temp = temp->getSkip(); //cycles through the skips to get to the last one
- }
- else
- {
- break;
- }
- }
- if (*(newNode->getData()->getEngine()) == *(temp->getData()->getEngine()))
- {
- while (temp->getNext() != nullptr)
- {
- if (*(newNode->getData()->getEngine()) == *(temp->getData()->getEngine()))
- {
- temp = temp->getNext(); //cycles through the group to the last member of that group
- }
- else
- {
- break;
- }
- }
- temp->setNext(newNode);
- newNode->setPrevious(temp);
- newNode->setNext(nullptr);
- }
- if (*(newNode->getData()->getEngine()) != *(temp->getSkip()->getData()->getEngine()))
- {
- temp->setSkip(newNode);
- }
- while (temp->getNext() != nullptr)
- {
- temp = temp->getNext();
- }
- temp->setNext(newNode);
- newNode->setPrevious(temp);
- newNode->setNext(nullptr);
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement