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

Тема в разделе "Общие вопросы по С и С++", создана пользователем mashinit, 1 дек 2011.

Статус темы:
Закрыта.
  1. mashinit

    mashinit Гость

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

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

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

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

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

Поделиться этой страницей