У меня проблемы с моим методом вставки, так как по какой-то причине я заканчиваю бесконечным циклом. Вот моя структура:C вставить элемент в восходящий связанный список
struct List {
char element;
struct List *next;
};
А вот мой метод вставки:
void insert(struct List *first, char el){
struct List *new=NULL;
struct List *current = first;
new = (struct List*) malloc (sizeof(struct List));
new->element = el;
new->next = NULL;
if (first == NULL){
first = new;
return;
}
while (1){ //this loop never ends
if (current->next == NULL) break;
if (current->next->element < el){
current = current->next;
}else{
break;
}
}
struct List *ex_next = current->next;
current->next = new;
new->next = ex_next;
}
Я знаю подобный вопрос здесь: C - Inserting into linked list in ascending order, но это не помогло мне.
Ну, единственный способ, что цикл будет повторяться вечно, если у вас есть (например, 'node == node-> next'). –