Удалить Первое Вхождение Елемента Из Списка

  • Автор темы mashinit
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mashinit

#1
ДОбрый день у меня такая задача:

Использовать (линейные) однонаправленные списки Параметры L, L1 и L2 обозначают списки, а параметры Е, Е1 и Е2-данные типы ТЕ, к которым можно применять операции присваивания и проверки на равенство.
Определить функцию,
а) удаляет из списка L первое вхождение элемента E, если такое есть;
б) по списку L строит два новых списка: L1 - из положительных элементов и L2 - из других элементов списка L {ТЕ = double}.
в) удаляет из списка L2 первый отрицательный элемент, если таковой имеется,
г) выводит результат в два различных файлов (используется одна фунция)

Подскажите, как правельно удалить первое вхождение Элемента из списка? Прошу помощи, нето утону +)

не могу придумать как сделать что б оно именно удаляло первое вхождение елемент, присвоить ему значение 0 нельзя ведь тогда запишеться елемент 0, а если ему присвоить NULL может тогда выйдет =/ и использовать функцию с while? чтоб заменить имнно первое?
 
G

Guest

#2
Здравствуйте. Если правильно понял задание, то:
1).Просматриваете элементы списка в поисках нужного признака, при этом сохраняете в специальную переменную адрес элемента, предшествующего обрабатываемому;
2).Если найден нужный элемент, то считываете в переменную-указатель адрес следующего элемента;
3).Удаляете элемент ( free() );
4).Переходите к элементу по сохраненному в п.1 указателю
5).Записываете в поле адреса следующего элемента сохраненный в п.2 указатель
 
Статус
Закрыто для дальнейших ответов.