}else { node_ref curr; node_ref new = malloc (sizeof (struct node)); prev = NULL; assert (new != NULL); for (curr = head; curr != NULL; curr = curr->link){ if (curr->item > thenum){break;} prev = curr; } new->item = thenum; new->link = curr; if (prev == NULL){ head = new; }else{ prev->link = new; } }