Struct Doublelinked List Node { Intdata; Double Linked listNode prev; Double Lin
ID: 3770272 • Letter: S
Question
Struct Doublelinked List Node { Intdata; Double Linked listNode prev; Double Linked listNode next; ); Assume that the data In the double linked list Is ordered In ascending order. Insert the parameter, value To lnsert. into the double linked Vist. keeping the double linked list In ascending order void Insertln Order{DoublelinkedlistNode & start,int value Toinsert} { Double Linked listNode temp; if (start = = null pr) temp = new Double Linked listNode temp right arrow next = start; temp right arrow prew = null point; start right arrow prev = temp;Explanation / Answer
void insertInOrder(struct DoubleLinkedListNode ** start, int valueToInsert)
{
struct DoubleLinkedListNode* current;
struct DoubleLinkedListNode* new_node =(struct DoubleLinkedListNode*) malloc(sizeof(struct DoubleLinkedListNode));
new_node->data=valueToInsert;
new_node->next=new_node->prev=NULL;
/* Special case for the head end */
if (*start == NULL || (*start)->data >= new_node->data)
{
new_node->next = *start;
*start = new_node;
}
else
{
/* Locate the node before the point of insertion */
current = *start;
while (current->next!=NULL &&
current->next->data < new_node->data)
{
current = current->next;
}
new_node->next = current->next;
current->next = new_node;
}
}