Удаление и поиск элемента в односвязном списке - C (СИ)
Формулировка задачи:
Вот мои функции, но они почему то не работают: функция удаления удаляет всегда голову, а функция поиска находит все элементы.
ITEM* delete_node(ITEM* head, int delete_data) { ITEM *cur, *prev; prev=NULL; cur=head; while(cur!=NULL/* && cur->data<=delete_data*/) { if(delete_data-0.1<cur->data<delete_data+0.1) { if(prev==NULL) { head=head->next; printf("Jelement(golova) udalen"); } else { cur=cur->next; printf("Jelement udalen"); } free(cur); return head; } prev=cur; cur=cur->next; } printf("Jelement otsustvuet v spiske\n" ); return head; } ITEM* find_node(ITEM* head, float find_data) { ITEM *cur; cur=head; while(cur!=NULL && cur->data<=find_data) { if(find_data-0.1<cur->data<find_data+0.1) { printf("Jelement najden\n"); return cur; } cur=cur->next; } printf("Jelement ne najden \n"); return NULL; }
Решение задачи: «Удаление и поиск элемента в односвязном списке»
textual
Листинг программы
Вот элемент главной функции: puts("Vvedite chislo"); scanf("%f",&chislo); Head=delete_node(Head,chislo); getch(); break;
Объяснение кода листинга программы
- Ввод числа с клавиатуры
- Вызов функции delete_node(Head,chislo)
- Удаление узла из списка
- Вывод на экран значения переменной chislo
- Получение следующего ввода с клавиатуры
- Вызов функции getch() для приостановки выполнения программы до нажатия клавиши
- Прерывание выполнения программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д