У меня возникли проблемы с тем, как вставить элемент в отсортированный список. Я новичок в связанных списках, и у меня все еще возникают проблемы. Следующая функция принимает предопределенный список и элемент в качестве аргументов. У меня есть белый, все это, но я все еще не могу понять. Спасибо за помощь.Вставка элемента в отсортированный список
/*
* function: lst_insert_sorted
*
* description: assumes given list is already in sorted order
* and inserts x into the appropriate position
* retaining sorted-ness.
* Note 1: duplicates are allowed.
*
* Note 2: if given list not sorted, behavior is undefined/implementation
* dependent. We blame the caller.
* So... you don't need to check ahead of time if it is sorted.
*/
void lst_insert_sorted(LIST *l, ElemType x) {
NODE *p = l->front;
NODE *temp;
NODE *current = p;
NODE *prev;
NODE *next;
if (p->val >= x) { // Base Case if
p->val = x;
}
while (p !=NULL) {
prev = current;
temp = prev->next;
next = current->next;
if (next->val >= x) {
temp->val = x;
}
}
return 0;
}
Является ли список односвязным? –