I am trying to insert student records into a linked list ordered by student id.
ID: 3859824 • Letter: I
Question
I am trying to insert student records into a linked list ordered by student id. What is wrong with my insert function???
void LinkedList: :insertNode (student x)t ListNode *newNode; //a new node ListNode *nodePtr; ListNode *previousNode nullptr; //previous node newNode = new ListNode; newNode-)sName = x.getName(); newNode->sTestAvg = x.getTestavg(); newNode-25Address = x.getAddress(); newMode->sId = x.getId(); //if there are no nodes in the list make newNode first node if (lhead) { head = newNode; newNode->next nullptr; else nodePtr = head; previousNode = nullptr; while (nodePtr != nullptr && nodePtr-sld next ; if (previousNode == nullptr) { // if the new node is to be the first in list head = newNode; newNode->next nodePtr; ) else //insert after the previous node previousNode->next = newNode; newNode->next nodePtr;Explanation / Answer
void LinkedList::insertNode(student x) {
ListNode *newNode; //a new node
ListNode *nodePtr;
ListNode *previousNode = nullptr; //previous node
newNode = new ListNode;
newNode->sName = x.getName();
newNode->sTestAvg = x.getTestavg();
newNode->sAddress = x.getAddress();
newNode->sId = x.getld();
nodePtr = head;
previousNode = nullptr;
while (nodePtr != nullptr) {
if (nodePtr->sId >= x.getld()) //skips all nodes whps sId is less than id
break;
previousNode = nodePtr;
nodePtr = nodePtr->next;
}
if (previousNode == nullptr) { // if the new node is to be the first in list
head = newNode;
newNode->next = nodePtr;
} else { //insert after the previous node
previousNode->next = newNode;
newNode->next = nodePtr;
}
}
If you are getting a null ptr exception, or segmentation error, this is the solution. If you are having some other error please let me know.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.